Author: chathura
Date: Thu Jan 17 05:25:47 2008
New Revision: 12416
Log:
Impelementing proper exception handling in the permission UI.
Modified:
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PermissionUtil.java
trunk/registry/modules/webapps/src/main/webapp/admin/permisions.jsp
Modified:
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
==============================================================================
---
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
(original)
+++
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
Thu Jan 17 05:25:47 2008
@@ -179,43 +179,19 @@
} else if (command.equals("/authorize")) {
- try {
- PermissionUtil.addUserPermission(request, response);
- } catch (RegistryException e) {
- // todo: implement a general AJAX error segment
- setErrorMessage(request, e.getMessage());
- forwardToResources(request, response, path);
- }
+ PermissionUtil.addUserPermission(request, response);
} else if (command.equals("/authorize/mass")) {
- try {
- PermissionUtil.applyMassUserPermissions(request, response);
- } catch (RegistryException e) {
- // todo: implement a general AJAX error segment
- setErrorMessage(request, e.getMessage());
- forwardToResources(request, response, path);
- }
+ PermissionUtil.applyMassUserPermissions(request, response);
} else if (command.equals("/authorizeRole")) {
- try {
- PermissionUtil.addRolePermission(request, response);
- } catch (RegistryException e) {
- // todo: implement a general AJAX error segment
- setErrorMessage(request, e.getMessage());
- forwardToResources(request, response, path);
- }
+ PermissionUtil.addRolePermission(request, response);
} else if (command.equals("/authorizeRoles")) {
- try {
- PermissionUtil.applyMassRolePermissions(request, response);
- } catch (RegistryException e) {
- // todo: implement a general AJAX error segment
- setErrorMessage(request, e.getMessage());
- forwardToResources(request, response, path);
- }
+ PermissionUtil.applyMassRolePermissions(request, response);
} else if (command.equals("/setDescription")) {
Modified:
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PermissionUtil.java
==============================================================================
---
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PermissionUtil.java
(original)
+++
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/PermissionUtil.java
Thu Jan 17 05:25:47 2008
@@ -35,24 +35,27 @@
public class PermissionUtil {
public static void addUserPermission(HttpServletRequest request,
HttpServletResponse response)
- throws RegistryException, ServletException, IOException {
+ throws ServletException, IOException {
String pathToAuthorize = request.getParameter("pathToAuthorize");
String userToAuthorize = request.getParameter("userToAuthorize");
String actionToAuthorize = request.getParameter("actionToAuthorize");
String permissionType = request.getParameter("permissionType");
- SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
- Realm userRealm = secureRegistry.getUserRealm();
-
+ Realm userRealm = null;
AccessControlAdmin accessControlAdmin = null;
try {
+ SecureRegistry secureRegistry =
CommonUtil.getUserRegistry(request);
+ userRealm = secureRegistry.getUserRealm();
accessControlAdmin = userRealm.getAccessControlAdmin();
- } catch (UserManagerException e) {
+
+ } catch (Exception e) {
String msg =
"Couldn't get access control admin for changing
authorizations. Caused by: " +
e.getMessage();
- throw new RegistryException(msg);
+ setErrorMessage(request, msg);
+ sendPermissionHTML(request, response, pathToAuthorize);
+ return;
}
try {
@@ -92,7 +95,7 @@
}
}
} catch (UserManagerException e) {
- e.printStackTrace();
+ setErrorMessage(request, e.getMessage());
}
sendPermissionHTML(request, response, pathToAuthorize);
@@ -100,22 +103,24 @@
public static void applyMassUserPermissions(
HttpServletRequest request, HttpServletResponse response)
- throws RegistryException, ServletException, IOException {
+ throws ServletException, IOException {
String permissionString = request.getParameter("permissionInput");
String resourcePath = request.getParameter("resourcePath");
- SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
- Realm realm = secureRegistry.getUserRealm();
-
AccessControlAdmin accessControlAdmin = null;
try {
+ SecureRegistry secureRegistry =
CommonUtil.getUserRegistry(request);
+ Realm realm = secureRegistry.getUserRealm();
accessControlAdmin = realm.getAccessControlAdmin();
- } catch (UserManagerException e) {
+ } catch (Exception e) {
String msg =
"Couldn't get access control admin for changing
authorizations. Caused by: " +
e.getMessage();
- throw new RegistryException(msg);
+
+ setErrorMessage(request, msg);
+ sendPermissionHTML(request, response, resourcePath);
+ return;
}
try {
@@ -194,31 +199,33 @@
}
} catch (UserManagerException e) {
String msg = "Couldn't set authorizations. Caused by: " +
e.getMessage();
- throw new RegistryException(msg);
+ setErrorMessage(request, msg);
}
sendPermissionHTML(request, response, resourcePath);
}
public static void addRolePermission(HttpServletRequest request,
HttpServletResponse response)
- throws RegistryException, ServletException, IOException {
+ throws ServletException, IOException {
String pathToAuthorize = request.getParameter("pathToAuthorize");
String roleToAuthorize = request.getParameter("roleToAuthorize");
String actionToAuthorize = request.getParameter("actionToAuthorize");
String permissionType = request.getParameter("permissionType");
- SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
- Realm userRealm = secureRegistry.getUserRealm();
-
+ Realm userRealm = null;
AccessControlAdmin accessControlAdmin = null;
try {
+ SecureRegistry secureRegistry =
CommonUtil.getUserRegistry(request);
+ userRealm = secureRegistry.getUserRealm();
accessControlAdmin = userRealm.getAccessControlAdmin();
- } catch (UserManagerException e) {
+ } catch (Exception e) {
String msg =
"Couldn't get access control admin for changing
authorizations. Caused by: " +
e.getMessage();
- throw new RegistryException(msg);
+ setErrorMessage(request, msg);
+ sendPermissionHTML(request, response, pathToAuthorize);
+ return;
}
try {
@@ -258,7 +265,7 @@
}
}
} catch (UserManagerException e) {
- e.printStackTrace();
+ setErrorMessage(request, e.getMessage());
}
sendPermissionHTML(request, response, pathToAuthorize);
@@ -266,20 +273,22 @@
public static void applyMassRolePermissions(
HttpServletRequest request, HttpServletResponse response)
- throws RegistryException, ServletException, IOException {
+ throws ServletException, IOException {
String permissionString = request.getParameter("permissionInput");
String resourcePath = request.getParameter("resourcePath");
- SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
- Realm realm = secureRegistry.getUserRealm();
-
AccessControlAdmin accessControlAdmin = null;
try {
+ SecureRegistry secureRegistry =
CommonUtil.getUserRegistry(request);
+ Realm realm = secureRegistry.getUserRealm();
accessControlAdmin = realm.getAccessControlAdmin();
- } catch (UserManagerException e) {
+
+ } catch (Exception e) {
String msg = "Couldn't get access control admin for changing
authorizations. Caused by: " + e.getMessage();
- throw new RegistryException(msg);
+ setErrorMessage(request, msg);
+ sendPermissionHTML(request, response, resourcePath);
+ return;
}
try {
@@ -344,7 +353,7 @@
}
} catch (UserManagerException e) {
String msg = "Couldn't set authorizations. Caused by: " +
e.getMessage();
- throw new RegistryException(msg);
+ setErrorMessage(request, e.getMessage());
}
sendPermissionHTML(request, response, resourcePath);
@@ -352,13 +361,22 @@
private static void sendPermissionHTML(
HttpServletRequest request, HttpServletResponse response, String
resourcePath)
- throws RegistryException, ServletException, IOException {
+ throws ServletException, IOException {
ResourceDetailsAction resourceDetailsAction = new
ResourceDetailsAction();
resourceDetailsAction.setPath(resourcePath);
- resourceDetailsAction.execute(request);
+
+ try {
+ resourceDetailsAction.execute(request);
+ } catch (RegistryException e) {
+ request.getSession().setAttribute(UIConstants.ERROR_MESSAGE,
e.getMessage());
+ }
request.getSession().setAttribute(UIConstants.RESOURCE_BEAN,
resourceDetailsAction);
request.getRequestDispatcher(UIConstants.AJAX_PERMISSIONS_JSP).forward(request,
response);
}
+
+ private static void setErrorMessage(HttpServletRequest request, String
msg) {
+ request.getSession().setAttribute(UIConstants.ERROR_MESSAGE, msg);
+ }
}
Modified: trunk/registry/modules/webapps/src/main/webapp/admin/permisions.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/permisions.jsp
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/permisions.jsp Thu Jan
17 05:25:47 2008
@@ -5,7 +5,16 @@
<%
ResourceDetailsAction resource = (ResourceDetailsAction)
request.getSession().getAttribute(UIConstants.RESOURCE_BEAN);
+ String errorMessage = (String)
request.getSession().getAttribute(UIConstants.ERROR_MESSAGE);
+ if (errorMessage != null) {
+ request.getSession().removeAttribute(UIConstants.ERROR_MESSAGE);
+ }
%>
+
+<% if (errorMessage != null) { %>
+<div class="error-message"><%=errorMessage%></div>
+<% } %>
+
<h3>User Permissions</h3>
<div id="userPermisionsDiv" class="userPermisionsDiv leftSpace">
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev