Author: chathura
Date: Tue Dec  4 04:32:53 2007
New Revision: 10483

Log:


Added UI support for changing authorizations of users.



Added:
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
Modified:
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.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
   Tue Dec  4 04:32:53 2007
@@ -155,6 +155,20 @@
 
                 forwardToResources(request, response, path);
 
+            } else if (command.equals("/authorize/mass")) {
+
+                MassAuthorizationAction massAuthorizationAction = new 
MassAuthorizationAction();
+                massAuthorizationAction.setResourcePath(path);
+                
massAuthorizationAction.setPermissionString(request.getParameter("permissionInput"));
+
+                try {
+                    massAuthorizationAction.execute(request);
+                } catch (RegistryException e) {
+                    e.printStackTrace();
+                }
+
+                forwardToResources(request, response, path);
+
             } else if (command.equals("/addCollection")) {
 
                 AddCollectionAction addCollectionAction = new 
AddCollectionAction();

Added: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
==============================================================================
--- (empty file)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
     Tue Dec  4 04:32:53 2007
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.wso2.registry.web.actions;
+
+import org.wso2.registry.secure.SecureRegistry;
+import org.wso2.registry.secure.RegistryUserManager;
+import org.wso2.registry.RegistryException;
+import org.wso2.registry.ActionConstants;
+import org.wso2.usermanager.Realm;
+import org.wso2.usermanager.AccessControlAdmin;
+import org.wso2.usermanager.UserManagerException;
+
+import javax.servlet.http.HttpServletRequest;
+
+public class MassAuthorizationAction extends AbstractRegistryAction {
+
+    private String resourcePath;
+    private String permissionString;
+
+    public void execute(HttpServletRequest request) throws RegistryException {
+
+        setRequest(request);
+
+        SecureRegistry secureRegistry = (SecureRegistry) getRegistry();
+        RegistryUserManager userManager = secureRegistry.getUserManager();
+        Realm realm = userManager.getRealm();
+
+        AccessControlAdmin accessControlAdmin = null;
+        try {
+            accessControlAdmin = realm.getAccessControlAdmin();
+        } catch (UserManagerException e) {
+            String msg = "Couldn't get access control admin for changing 
authorizations. Caused by: " + e.getMessage();
+            throw new RegistryException(msg);
+        }
+
+        try {
+
+            String[] userPermissions = permissionString.split("1");
+            for (int i = 0; i < userPermissions.length; i++) {
+                String[] permissions = userPermissions[i].split("2");
+                String permUser = permissions[0];
+                accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.GET);
+                accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.PUT);
+
+                for (int j = 1; j < permissions.length; j++) {
+                    String[] permission = permissions[j].split("3");
+
+                    String action = permission[0];
+                    String checked = permission[1];
+
+                    if (action.equals("ra")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.GET);
+                        }
+                    } else if (action.equals("rd")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.GET);
+                        }
+                    } else if (action.equals("wa")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.PUT);
+                        }
+                    } else if (action.equals("wd")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.PUT);
+                        }
+                    }
+                }
+            }
+        } catch (UserManagerException e) {
+            String msg = "Couldn't set authorizations. Caused by: " + 
e.getMessage();
+            throw new RegistryException(msg);
+        }
+    }
+
+    public String getResourcePath() {
+        return resourcePath;
+    }
+
+    public void setResourcePath(String resourcePath) {
+        this.resourcePath = resourcePath;
+    }
+
+    public String getPermissionString() {
+        return permissionString;
+    }
+
+    public void setPermissionString(String permissionString) {
+        this.permissionString = permissionString;
+    }
+}

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   Tue Dec 
 4 04:32:53 2007
@@ -1,99 +1,123 @@
-var browserName=navigator.appName; 
+var browserName=navigator.appName;
 function showHide(toShowHide){
 
-       var resource_div=document.getElementById('add-resource-div');
-       var folder_div=document.getElementById('add-folder-div');
-       if(toShowHide=='add-resource-div') {
-               if(resource_div.style.display=='block'){
-                       resource_div.style.display='none';
-               }
-               else {
-                       resource_div.style.display='block';
-                       if(folder_div.style.display=='block') 
folder_div.style.display='none';
-               }
-       }
-       
-       if(toShowHide=='add-folder-div') {
-               if(folder_div.style.display=='block'){
-                       folder_div.style.display='none';
-               }
-               else {
-                       folder_div.style.display='block';
-                       if(resource_div.style.display=='block') 
resource_div.style.display='none';
-               }
-       }
+    var resource_div=document.getElementById('add-resource-div');
+    var folder_div=document.getElementById('add-folder-div');
+    if(toShowHide=='add-resource-div') {
+        if(resource_div.style.display=='block'){
+            resource_div.style.display='none';
+        }
+        else {
+            resource_div.style.display='block';
+            if(folder_div.style.display=='block') 
folder_div.style.display='none';
+        }
+    }
+
+    if(toShowHide=='add-folder-div') {
+        if(folder_div.style.display=='block'){
+            folder_div.style.display='none';
+        }
+        else {
+            folder_div.style.display='block';
+            if(resource_div.style.display=='block') 
resource_div.style.display='none';
+        }
+    }
 }
 
 
 function showDescription(desc){
-       var des_div=document.getElementById(desc);
-       if(des_div.style.display=='none'){
-               if (browserName=="Netscape")
-               { 
-                       des_div.style.display='table-row';
-               }
-               else 
-               { 
-                if (browserName=="Microsoft Internet Explorer")
-                {
-                 des_div.style.display='block';
-                }
-                else
-                 {
-                   des_div.style.display='table-row';
-                  }
-               }
-       }
-       else des_div.style.display='none';
+    var des_div=document.getElementById(desc);
+    if(des_div.style.display=='none'){
+        if (browserName=="Netscape")
+        {
+            des_div.style.display='table-row';
+        }
+        else
+        {
+            if (browserName=="Microsoft Internet Explorer")
+            {
+                des_div.style.display='block';
+            }
+            else
+            {
+                des_div.style.display='table-row';
+            }
+        }
+    }
+    else des_div.style.display='none';
 }
 
 function showHideSearch(){
-       
-       var searchFor= document.advancedSearch.searchFor.selectedIndex;
-       
-       if(searchFor == 0){
-        document.getElementById('resourceForm').style.display = 'block';
-        document.getElementById('commentsForm').style.display = 'none';
-       }
-       if(searchFor == 1){
-        document.getElementById('resourceForm').style.display = 'none';
-        document.getElementById('commentsForm').style.display = 'block';
-       }
- }
- 
- function showHideEdit(){
-       
-       var normal_div=document.getElementById('resource-content');
-       var edit_div=document.getElementById('resource-content-edit');
-       var edit_button = document.getElementById('editButton');
-
-               if(normal_div.style.display=='block'){
-                       normal_div.style.display='none';
-                       edit_div.style.display='block';
-                       edit_button.value= 'Save Description';
-               }
-               else {
-                       normal_div.style.display='block';
-                       edit_div.style.display='none'
-                       edit_button.value= 'Edit Description';
-               }
-       
+
+    var searchFor= document.advancedSearch.searchFor.selectedIndex;
+
+    if(searchFor == 0){
+        document.getElementById('resourceForm').style.display = 'block';
+        document.getElementById('commentsForm').style.display = 'none';
+    }
+    if(searchFor == 1){
+        document.getElementById('resourceForm').style.display = 'none';
+        document.getElementById('commentsForm').style.display = 'block';
+    }
+}
+
+function showHideEdit(){
+
+    var normal_div=document.getElementById('resource-content');
+    var edit_div=document.getElementById('resource-content-edit');
+    var edit_button = document.getElementById('editButton');
+
+    if(normal_div.style.display=='block'){
+        normal_div.style.display='none';
+        edit_div.style.display='block';
+        edit_button.value= 'Save Description';
+    }
+    else {
+        normal_div.style.display='block';
+        edit_div.style.display='none'
+        edit_button.value= 'Edit Description';
+    }
+
 }
- function showHideEdit(){
-       
-       var normal_div=document.getElementById('resource-content');
-       var edit_div=document.getElementById('resource-content-edit');
-       var edit_button = document.getElementById('editButton');
-
-               if(normal_div.style.display=='block'){
-                       normal_div.style.display='none';
-                       edit_div.style.display='block';
-                       edit_button.value= 'Save Description';
-               }
-               else {
-                       normal_div.style.display='block';
-                       edit_div.style.display='none'
-                       edit_button.value= 'Edit Description';
-               }
-       
+function showHideEdit(){
+
+    var normal_div=document.getElementById('resource-content');
+    var edit_div=document.getElementById('resource-content-edit');
+    var edit_button = document.getElementById('editButton');
+
+    if(normal_div.style.display=='block'){
+        normal_div.style.display='none';
+        edit_div.style.display='block';
+        edit_button.value= 'Save Description';
+    }
+    else {
+        normal_div.style.display='block';
+        edit_div.style.display='none'
+        edit_button.value= 'Edit Description';
+    }
+
+}
+
+function processPermissions()
+{
+    pForm = document.forms["permissions"];
+    len = pForm.elements.length;
+    msgBody = "";
+    currentUser = "";
+    for (i=0; i<len; i++) {
+        if (pForm.elements[i].type=="checkbox") {
+            perm = pForm.elements[i];
+            if(pForm.elements[i].name.substring(0,7)!="nonuser") {
+                if (currentUser != perm.name) {
+                    msgBody=msgBody + "1" + perm.name + "2" + perm.value + "3" 
+ perm.checked;
+                    currentUser = perm.name;
+                } else {
+                    msgBody=msgBody + "2" + perm.value + "3" + perm.checked;
+                }
+            }
+        }
+    }
+
+    document.getElementById("pInput").value = msgBody;
+    pForm.submit();
 }
\ 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 Tue Dec 
 4 04:32:53 2007
@@ -41,7 +41,8 @@
         </tr>
     </table><br>
 
-    <form action="Authorization.action" theme="simple" method="post">
+    <form name="permissions" action="/wso2registry/system/authorize/mass" 
theme="simple" method="post">
+        <input type="hidden" id="pInput" name="permissionInput" value=""/>
         <input type="hidden" name="pathToAuthorize" value="%{path}"/>
         <table width="100%" class="data-table" border="0" cellpadding="3" 
cellspacing="0">
             <tr >
@@ -67,12 +68,12 @@
 
                 <tr>
                     <td><%=permission.getUserName()%></td>
-                    <td width="100"><input type="checkbox" name="readAllow" <% 
if (permission.isReadAllow()) { %> checked <% } %>/></td>
-                    <td width="100"><input type="checkbox" name="readDeny" <% 
if (permission.isReadDeny()) { %> checked <% } %>/></td>
-                    <td width="100"><input type="checkbox" name="writeAllow" 
<% if (permission.isWriteAllow()) { %> checked <% } %>/></td>
-                    <td width="100"><input type="checkbox" name="writeDeny" <% 
if (permission.isWriteDeny()) { %> checked <% } %>/></td>
-                    <td width="100"><input type="checkbox" name="deleteAllow" 
<% if (permission.isDeleteAllow()) { %> checked <% } %>/></td>
-                    <td width="100"><input type="checkbox" name="deleteDeny" 
<% if (permission.isDeleteDeny()) { %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="ra" <% if 
(permission.isReadAllow()) { %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="rd" <% if (permission.isReadDeny()) 
{ %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="wa" <% if 
(permission.isWriteAllow()) { %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="wd" <% if 
(permission.isWriteDeny()) { %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="da" <% if 
(permission.isDeleteAllow()) { %> checked <% } %>/></td>
+                    <td width="100"><input type="checkbox" 
name="<%=permission.getUserName()%>" value="dd" <% if 
(permission.isDeleteDeny()) { %> checked <% } %>/></td>
                 </tr>
             <% } %>
             <tr>
@@ -88,6 +89,6 @@
 
 
         <img src="/wso2registry/admin/images/blank.gif" width="10" height="12" 
/><br/>
-        <input type="submit" class="button" value="Apply All Permissions" />
+        <input type="submit" class="button" value="Apply All Permissions" 
onclick="processPermissions();" />
 
     </form>

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

Reply via email to