Author: chathura
Date: Mon Jan 14 23:31:44 2008
New Revision: 12236

Log:


AJAXifying permissions 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/js/common.js
   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
   Mon Jan 14 23:31:44 2008
@@ -178,20 +178,28 @@
 
             } else if (command.equals("/authorize")) {
 
-                AuthorizationAction authorizationAction = new 
AuthorizationAction();
-                authorizationAction.setPathToAuthorize(path);
-                
authorizationAction.setUserToAuthorize(request.getParameter("userToAuthorize"));
-                
authorizationAction.setActionToAuthorize(request.getParameter("actionToAuthorize"));
-                
authorizationAction.setPermissionType(request.getParameter("permissionType"));
-
                 try {
-                    authorizationAction.execute(request);
-                } catch (Exception e) {
+                    PermissionUtil.addUserPermission(request, response);
+                } catch (RegistryException e) {
+                    // todo: implement a general AJAX error segment
                     setErrorMessage(request, e.getMessage());
-                    e.printStackTrace();
+                    forwardToResources(request, response, path);
                 }
 
-                response.sendRedirect("/wso2registry/web" + path);
+                //AuthorizationAction authorizationAction = new 
AuthorizationAction();
+                //authorizationAction.setPathToAuthorize(path);
+                
//authorizationAction.setUserToAuthorize(request.getParameter("userToAuthorize"));
+                
//authorizationAction.setActionToAuthorize(request.getParameter("actionToAuthorize"));
+                
//authorizationAction.setPermissionType(request.getParameter("permissionType"));
+                //
+                //try {
+                //    authorizationAction.execute(request);
+                //} catch (Exception e) {
+                //    setErrorMessage(request, e.getMessage());
+                //    e.printStackTrace();
+                //}
+                //
+                //response.sendRedirect("/wso2registry/web" + path);
                 //forwardToResources(request, response, path);
 
             } else if (command.equals("/authorize/mass")) {

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
        Mon Jan 14 23:31:44 2008
@@ -34,6 +34,70 @@
 
 public class PermissionUtil {
 
+    public static void addUserPermission(HttpServletRequest request, 
HttpServletResponse response)
+            throws RegistryException, 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();
+
+        AccessControlAdmin accessControlAdmin = null;
+        try {
+            accessControlAdmin = userRealm.getAccessControlAdmin();
+        } catch (UserManagerException e) {
+            String msg =
+                    "Couldn't get access control admin for changing 
authorizations. Caused by: " +
+                            e.getMessage();
+            throw new RegistryException(msg);
+        }
+
+        try {
+            if (actionToAuthorize.equals("2")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeUser(userToAuthorize, 
pathToAuthorize, ActionConstants.GET);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyUser(userToAuthorize, pathToAuthorize, 
ActionConstants.GET);
+                }
+            }
+
+            if (actionToAuthorize.equals("3")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeUser(userToAuthorize, 
pathToAuthorize, ActionConstants.PUT);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyUser(userToAuthorize, pathToAuthorize, 
ActionConstants.PUT);
+                }
+            }
+
+            if (actionToAuthorize.equals("4")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeUser(userToAuthorize, 
pathToAuthorize, ActionConstants.DELETE);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyUser(userToAuthorize, pathToAuthorize, 
ActionConstants.DELETE);
+                }
+            }
+
+            if (actionToAuthorize.equals("5")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeUser(userToAuthorize, 
pathToAuthorize, UserManagerConstants.AUTHORIZE);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyUser(userToAuthorize, pathToAuthorize, 
UserManagerConstants.AUTHORIZE);
+                }
+            }
+        } catch (UserManagerException e) {
+            e.printStackTrace();
+        }
+
+        sendPermissionHTML(request, response, pathToAuthorize);
+    }
+
     public static void applyMassUserPermissions(
             HttpServletRequest request, HttpServletResponse response)
             throws RegistryException, ServletException, IOException {
@@ -48,7 +112,9 @@
         try {
             accessControlAdmin = realm.getAccessControlAdmin();
         } catch (UserManagerException e) {
-            String msg = "Couldn't get access control admin for changing 
authorizations. Caused by: " + e.getMessage();
+            String msg =
+                    "Couldn't get access control admin for changing 
authorizations. Caused by: " +
+                            e.getMessage();
             throw new RegistryException(msg);
         }
 
@@ -67,10 +133,14 @@
                 if (!(permUser.equals(RegistryConstants.SYSTEM_USER) ||
                         permUser.equals(RegistryConstants.ADMIN_USER))) {
 
-                    accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.GET);
-                    accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.PUT);
-                    accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.DELETE);
-                    accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, UserManagerConstants.AUTHORIZE);
+                    accessControlAdmin.
+                            clearUserAuthorization(permUser, resourcePath, 
ActionConstants.GET);
+                    accessControlAdmin.
+                            clearUserAuthorization(permUser, resourcePath, 
ActionConstants.PUT);
+                    accessControlAdmin.
+                            clearUserAuthorization(permUser, resourcePath, 
ActionConstants.DELETE);
+                    accessControlAdmin.clearUserAuthorization(
+                            permUser, resourcePath, 
UserManagerConstants.AUTHORIZE);
                 }
 
                 for (int j = 1; j < permissions.length; j++) {
@@ -81,35 +151,43 @@
 
                     if (action.equals("ra")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.GET);
+                            accessControlAdmin.authorizeUser(
+                                    permUser, resourcePath, 
ActionConstants.GET);
                         }
                     } else if (action.equals("rd")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.GET);
+                            accessControlAdmin.denyUser(
+                                    permUser, resourcePath, 
ActionConstants.GET);
                         }
                     } else if (action.equals("wa")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.PUT);
+                            accessControlAdmin.authorizeUser(
+                                    permUser, resourcePath, 
ActionConstants.PUT);
                         }
                     } else if (action.equals("wd")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.PUT);
+                            accessControlAdmin.denyUser(
+                                    permUser, resourcePath, 
ActionConstants.PUT);
                         }
                     } else if (action.equals("da")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.DELETE);
+                            accessControlAdmin.authorizeUser(
+                                    permUser, resourcePath, 
ActionConstants.DELETE);
                         }
                     } else if (action.equals("dd")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.DELETE);
+                            accessControlAdmin.denyUser(
+                                    permUser, resourcePath, 
ActionConstants.DELETE);
                         }
                     } else if (action.equals("aa")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, UserManagerConstants.AUTHORIZE);
+                            accessControlAdmin.authorizeUser(
+                                    permUser, resourcePath, 
UserManagerConstants.AUTHORIZE);
                         }
                     } else if (action.equals("ad")) {
                         if (checked.equals("true")) {
-                            accessControlAdmin.denyUser(permUser, 
resourcePath, UserManagerConstants.AUTHORIZE);
+                            accessControlAdmin.denyUser(
+                                    permUser, resourcePath, 
UserManagerConstants.AUTHORIZE);
                         }
                     }
                 }
@@ -119,6 +197,13 @@
             throw new RegistryException(msg);
         }
 
+        sendPermissionHTML(request, response, resourcePath);
+    }
+
+    private static void sendPermissionHTML(
+            HttpServletRequest request, HttpServletResponse response, String 
resourcePath)
+            throws RegistryException, ServletException, IOException {
+
         ResourceDetailsAction resourceDetailsAction = new 
ResourceDetailsAction();
         resourceDetailsAction.setPath(resourcePath);
         resourceDetailsAction.execute(request);

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/js/common.js   Mon Jan 
14 23:31:44 2008
@@ -98,6 +98,19 @@
 
 }
 
+function addUserPermission(pathToAuthorize) {
+
+    var userToAuthorize = document.getElementById('userToAuthorize').value;
+    var actionToAuthorize = document.getElementById('actionToAuthorize').value;
+
+    var permissionType = "1";
+    if (document.getElementById('permissionDeny').checked) {
+        permissionType = "2";
+    }
+
+    new Ajax.Updater('perExpanded', '/wso2registry/system/authorize', { 
method: 'post', parameters: {pathToAuthorize: pathToAuthorize, userToAuthorize: 
userToAuthorize, actionToAuthorize: actionToAuthorize, permissionType: 
permissionType} });
+}
+
 function processPermissions(resourcePath)
 {
     var pForm = document.forms["permissions"];

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 Mon Jan 
14 23:31:44 2008
@@ -10,13 +10,12 @@
 <div id="userPermisionsDiv" class="userPermisionsDiv leftSpace">
 
 <h4>Add New Permissions</h4>
-<form action="/wso2registry/system/authorize" theme="simple" method="post">
+<form theme="simple">
 <table width="100%" border="0" cellpadding="5" cellspacing="0">
     <tr>
-            <input type="hidden" name="pathToAuthorize" 
value="<%=resource.getPath()%>"/>
             <td>User</td>
             <td>
-                <select name="userToAuthorize">
+                <select id="userToAuthorize" name="userToAuthorize">
                     <%
                         Iterator iUsers = resource.getUserNames().iterator();
                         while (iUsers.hasNext()) {
@@ -29,7 +28,7 @@
             </td>
             <td align="right">Action</td>
             <td>
-                <select name="actionToAuthorize">
+                <select id="actionToAuthorize" name="actionToAuthorize">
                     <option value="1">-- Select an action --</option>
                     <option value="2">Read</option>
                     <option value="3">Write</option>
@@ -38,9 +37,9 @@
                 </select>
             </td>
             <td>
-                <input type="radio" name="permissionType" value="1" />Allow 
<input type="radio" name="permissionType" value="2" />Deny
+                <input type="radio" id="permissionAllow" name="permissionType" 
value="1" checked="checked" />Allow <input type="radio" id="permissionDeny" 
name="permissionType" value="2" />Deny
             </td>
-            <td align="right"><input type="submit" class="button" value="Add 
Permision"/></td>
+            <td align="right"><input type="button" class="button" value="Add 
Permision" onclick="addUserPermission('<%=resource.getPath()%>')"/></td>
     </tr>
 </table>
 </form>

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to