Author: chathura
Date: Mon Jan 14 23:47:49 2008
New Revision: 12238

Log:


More work on AJAX for permissions.



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:47:49 2008
@@ -228,20 +228,28 @@
 
             } else if (command.equals("/authorizeRole")) {
 
-                RoleAuthorizationAction roleAuthorizationAction = new 
RoleAuthorizationAction();
-                roleAuthorizationAction.setPathToAuthorize(path);
-                
roleAuthorizationAction.setRoleToAuthorize(request.getParameter("roleToAuthorize"));
-                
roleAuthorizationAction.setActionToAuthorize(request.getParameter("actionToAuthorize"));
-                
roleAuthorizationAction.setPermissionType(request.getParameter("permissionType"));
-
                 try {
-                    roleAuthorizationAction.execute(request);
-                } catch (Exception e) {
+                    PermissionUtil.addRolePermission(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);
+                //RoleAuthorizationAction roleAuthorizationAction = new 
RoleAuthorizationAction();
+                //roleAuthorizationAction.setPathToAuthorize(path);
+                
//roleAuthorizationAction.setRoleToAuthorize(request.getParameter("roleToAuthorize"));
+                
//roleAuthorizationAction.setActionToAuthorize(request.getParameter("actionToAuthorize"));
+                
//roleAuthorizationAction.setPermissionType(request.getParameter("permissionType"));
+                //
+                //try {
+                //    roleAuthorizationAction.execute(request);
+                //} catch (Exception e) {
+                //    setErrorMessage(request, e.getMessage());
+                //    e.printStackTrace();
+                //}
+                //
+                //response.sendRedirect("/wso2registry/web" + path);
                 //forwardToResources(request, response, path);
 
             } else if (command.equals("/authorizeRoles")) {

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:47:49 2008
@@ -200,6 +200,70 @@
         sendPermissionHTML(request, response, resourcePath);
     }
 
+    public static void addRolePermission(HttpServletRequest request, 
HttpServletResponse response)
+            throws RegistryException, 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();
+
+        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().authorizeRole(roleToAuthorize, 
pathToAuthorize, ActionConstants.GET);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyRole(roleToAuthorize, pathToAuthorize, 
ActionConstants.GET);
+                }
+            }
+
+            if (actionToAuthorize.equals("3")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeRole(roleToAuthorize, 
pathToAuthorize, ActionConstants.PUT);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyRole(roleToAuthorize, pathToAuthorize, 
ActionConstants.PUT);
+                }
+            }
+
+            if (actionToAuthorize.equals("4")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeRole(roleToAuthorize, 
pathToAuthorize, ActionConstants.DELETE);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyRole(roleToAuthorize, pathToAuthorize, 
ActionConstants.DELETE);
+                }
+            }
+
+            if (actionToAuthorize.equals("5")) {
+
+                if (permissionType.equals("1")) {
+                    
userRealm.getAccessControlAdmin().authorizeRole(roleToAuthorize, 
pathToAuthorize, UserManagerConstants.AUTHORIZE);
+                } else {
+                    
userRealm.getAccessControlAdmin().denyRole(roleToAuthorize, pathToAuthorize, 
UserManagerConstants.AUTHORIZE);
+                }
+            }
+        } catch (UserManagerException e) {
+            e.printStackTrace();
+        }
+
+        sendPermissionHTML(request, response, pathToAuthorize);
+    }
+
     private static void sendPermissionHTML(
             HttpServletRequest request, HttpServletResponse response, String 
resourcePath)
             throws RegistryException, ServletException, IOException {

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:47:49 2008
@@ -131,12 +131,22 @@
         }
     }
 
-    //document.getElementById("pInput").value = msgBody;
-    //pForm.submit();
-
     new Ajax.Updater('perExpanded', '/wso2registry/system/authorize/mass', { 
method: 'post', parameters: {permissionInput: msgBody, resourcePath: 
resourcePath} });
 }
 
+function addRolePermission(pathToAuthorize) {
+
+    var roleToAuthorize = document.getElementById('roleToAuthorize').value;
+    var actionToAuthorize = 
document.getElementById('roleActionToAuthorize').value;
+
+    var permissionType = "1";
+    if (document.getElementById('rolePermissionDeny').checked) {
+        permissionType = "2";
+    }
+
+    new Ajax.Updater('perExpanded', '/wso2registry/system/authorizeRole', { 
method: 'post', parameters: {pathToAuthorize: pathToAuthorize, roleToAuthorize: 
roleToAuthorize, actionToAuthorize: actionToAuthorize, permissionType: 
permissionType} });
+}
+
 function processRolePermissions()
 {
     var pForm = document.forms["rolePermissions"];
@@ -213,7 +223,7 @@
         edit_div.style.display='none'
         edit_button.title= 'Edit Description';
         document.editButtonImage.src= 
'/wso2registry/admin/images/icon-edit.gif';
-        
+
     }
 }
 
@@ -407,41 +417,41 @@
     document.write(greeting);
 }
 function disableFields(idHideInput,idShowInput){
-       var showInput=document.getElementById(idHideInput);
-       var hideInput=document.getElementById(idShowInput);
-       
-       hideInput.removeAttribute('disabled');
-       hideInput.setAttribute('disabled','disabled');
-       showInput.removeAttribute('disabled');
-       
+    var showInput=document.getElementById(idHideInput);
+    var hideInput=document.getElementById(idShowInput);
+
+    hideInput.removeAttribute('disabled');
+    hideInput.setAttribute('disabled','disabled');
+    showInput.removeAttribute('disabled');
+
 }
 /* This function will preform the disable and enabaling of the two input fiels 
on resource adding form */
 function resourceFrom(type)
 {
-       /* Get radio button and file form field objects */
-       var contentFile=document.getElementById('contentFile');
-       var resourceFile=document.getElementById('resourceFile');
-
-       var contentURL=document.getElementById('contentURL');
-       var fetchURLID=document.getElementById('fetchURLID');
-
-       /* Get the help text content */
-       var fileHelpText=document.getElementById('fileHelpText');
-       var urlHelpText=document.getElementById('urlHelpText');
-
-       if(type=='file'){
-
-               fetchURLID.setAttribute('disabled','');
-               resourceFile.removeAttribute('disabled');
-               urlHelpText.style.color="#cccccc";
-               fileHelpText.style.color="#000000";
-
-       }
-       else{
-
-               resourceFile.setAttribute('disabled','');
-               fetchURLID.removeAttribute('disabled');
-               fileHelpText.style.color="#cccccc";
-               urlHelpText.style.color="#000000";
-       }
+    /* Get radio button and file form field objects */
+    var contentFile=document.getElementById('contentFile');
+    var resourceFile=document.getElementById('resourceFile');
+
+    var contentURL=document.getElementById('contentURL');
+    var fetchURLID=document.getElementById('fetchURLID');
+
+    /* Get the help text content */
+    var fileHelpText=document.getElementById('fileHelpText');
+    var urlHelpText=document.getElementById('urlHelpText');
+
+    if(type=='file'){
+
+        fetchURLID.setAttribute('disabled','');
+        resourceFile.removeAttribute('disabled');
+        urlHelpText.style.color="#cccccc";
+        fileHelpText.style.color="#000000";
+
+    }
+    else{
+
+        resourceFile.setAttribute('disabled','');
+        fetchURLID.removeAttribute('disabled');
+        fileHelpText.style.color="#cccccc";
+        urlHelpText.style.color="#000000";
+    }
 }
\ No newline at end of file

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:47:49 2008
@@ -94,13 +94,12 @@
 <h3 style="padding-top:20px;">Role Permissions</h3>
 <div id="rolePermisionsDiv" class="rolePermisionsDiv leftSpace">
 <h4>New Role Permisions</h4>
+<form theme="simple">
 <table width="100%" border="0" cellpadding="5" cellspacing="0">
     <tr>
-        <form action="/wso2registry/system/authorizeRole" theme="simple" 
method="post">
-            <input type="hidden" name="pathToAuthorize" value="%{path}"/>
             <td>Role</td>
             <td>
-                <select name="roleToAuthorize">
+                <select id="roleToAuthorize" name="roleToAuthorize">
                     <%
                         Iterator iRoles = resource.getRoleNames().iterator();
                         while (iRoles.hasNext()) {
@@ -113,7 +112,7 @@
             </td>
             <td align="right">Action</td>
             <td>
-                <select name="actionToAuthorize">
+                <select id="roleActionToAuthorize" name="actionToAuthorize">
                     <option value="1">-- Select an action --</option>
                     <option value="2">Read</option>
                     <option value="3">Write</option>
@@ -122,12 +121,12 @@
                 </select>
             </td>
             <td>
-                <input type="radio" name="permissionType" value="1" />Allow 
<input type="radio" name="permissionType" value="2" />Deny
+                <input type="radio" id="rolePermissionAllow" 
name="permissionType" value="1" checked="checked" />Allow <input type="radio" 
id="rolePermissionDeny" name="permissionType" value="2" />Deny
             </td>
-            <td align="right"><input type="submit" class="button" value="Add 
Permision"/></td>
-        </form>
+            <td align="right"><input type="button" class="button" value="Add 
Permision" onclick="addRolePermission('<%=resource.getPath()%>')"/></td>
     </tr>
 </table>
+</form>
 <h4 style="margin-top:10px;">Defined Role Permissions</h4>
 <form name="rolePermissions" action="/wso2registry/system/authorizeRoles" 
theme="simple" method="post">
     <input type="hidden" id="pRoleInput" name="permissionInput" value=""/>

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

Reply via email to