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

Reply via email to