Author: chathura
Date: Mon Jan  7 01:27:31 2008
New Revision: 11926

Log:


Implemented the support for changing delete permissions from the UI.



Modified:
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/CollectionViewAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassRoleAuthorizationAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/ResourceData.java
   trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/CollectionViewAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/CollectionViewAction.java
        (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/CollectionViewAction.java
        Mon Jan  7 01:27:31 2008
@@ -20,6 +20,7 @@
 import org.wso2.registry.RegistryConstants;
 import org.wso2.registry.RegistryException;
 import org.wso2.registry.Resource;
+import org.wso2.registry.servlet.utils.UserUtil;
 import org.wso2.registry.secure.AuthorizationFailedException;
 import org.wso2.registry.web.MediaTypesReader;
 import org.wso2.registry.web.actions.utils.ResourceData;
@@ -150,6 +151,8 @@
                 resourceData.setDescription(child.getDescription());
                 
resourceData.setAverageRating(registry.getAverageRating(child.getPath()));
                 resourceData.setCreatedOn(child.getCreatedTime());
+                resourceData.setDeleteAllowed(
+                        UserUtil.isDeleteAllowed(getUserName(), childPaths[i], 
request));
                 calculateAverageStars(resourceData);
 
                 resourceDataList.add(resourceData);

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
     (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassAuthorizationAction.java
     Mon Jan  7 01:27:31 2008
@@ -63,6 +63,7 @@
 
                     accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.GET);
                     accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.PUT);
+                    accessControlAdmin.clearUserAuthorization(permUser, 
resourcePath, ActionConstants.DELETE);
                 }
 
                 for (int j = 1; j < permissions.length; j++) {
@@ -87,6 +88,14 @@
                         if (checked.equals("true")) {
                             accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.PUT);
                         }
+                    } else if (action.equals("da")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.authorizeUser(permUser, 
resourcePath, ActionConstants.DELETE);
+                        }
+                    } else if (action.equals("dd")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.denyUser(permUser, 
resourcePath, ActionConstants.DELETE);
+                        }
                     }
                 }
             }

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassRoleAuthorizationAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassRoleAuthorizationAction.java
 (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/MassRoleAuthorizationAction.java
 Mon Jan  7 01:27:31 2008
@@ -61,6 +61,7 @@
                 if (!permRole.equals(RegistryConstants.ADMIN_ROLE)) {
                     accessControlAdmin.clearRoleAuthorization(permRole, 
resourcePath, ActionConstants.GET);
                     accessControlAdmin.clearRoleAuthorization(permRole, 
resourcePath, ActionConstants.PUT);
+                    accessControlAdmin.clearRoleAuthorization(permRole, 
resourcePath, ActionConstants.DELETE);
                 }
 
                 for (int j = 1; j < permissions.length; j++) {
@@ -85,6 +86,14 @@
                         if (checked.equals("true")) {
                             accessControlAdmin.denyRole(permRole, 
resourcePath, ActionConstants.PUT);
                         }
+                    } else if (action.equals("da")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.authorizeRole(permRole, 
resourcePath, ActionConstants.DELETE);
+                        }
+                    } else if (action.equals("dd")) {
+                        if (checked.equals("true")) {
+                            accessControlAdmin.denyRole(permRole, 
resourcePath, ActionConstants.DELETE);
+                        }
                     }
                 }
             }

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/ResourceDetailsAction.java
       Mon Jan  7 01:27:31 2008
@@ -294,6 +294,32 @@
                 }
             }
 
+            String[] daUsers = 
userRealm.getAuthorizer().getAllowedUsersForResource(path, 
ActionConstants.DELETE);
+            for (int i = 0; i < daUsers.length; i++) {
+                if (userPermissionMap.containsKey(daUsers[i])) {
+                    Permission permission = (Permission) 
userPermissionMap.get(daUsers[i]);
+                    permission.setDeleteAllow(true);
+                } else {
+                    Permission permission = new Permission();
+                    permission.setUserName(daUsers[i]);
+                    permission.setDeleteAllow(true);
+                    userPermissionMap.put(daUsers[i], permission);
+                }
+            }
+
+            String[] ddUsers = 
userRealm.getAuthorizer().getDeniedUsersForResource(path, 
ActionConstants.DELETE);
+            for (int i = 0; i < ddUsers.length; i++) {
+                if (userPermissionMap.containsKey(ddUsers[i])) {
+                    Permission permission = (Permission) 
userPermissionMap.get(ddUsers[i]);
+                    permission.setDeleteDeny(true);
+                } else {
+                    Permission permission = new Permission();
+                    permission.setUserName(ddUsers[i]);
+                    permission.setDeleteDeny(true);
+                    userPermissionMap.put(ddUsers[i], permission);
+                }
+            }
+
             userPermissions = new ArrayList(userPermissionMap.values());
 
             Map rolePermissionMap = new HashMap();
@@ -350,10 +376,37 @@
                 }
             }
 
+            String[] daRoles = 
userRealm.getAuthorizer().getAllowedRolesForResource(path, 
ActionConstants.DELETE);
+            for (int i = 0; i < daRoles.length; i++) {
+                if (rolePermissionMap.containsKey(daRoles[i])) {
+                    Permission permission = (Permission) 
rolePermissionMap.get(daRoles[i]);
+                    permission.setDeleteAllow(true);
+                } else {
+                    Permission permission = new Permission();
+                    permission.setUserName(daRoles[i]);
+                    permission.setDeleteAllow(true);
+                    rolePermissionMap.put(daRoles[i], permission);
+                }
+            }
+
+            String[] ddRoles = 
userRealm.getAuthorizer().getDeniedRolesForResource(path, 
ActionConstants.DELETE);
+            for (int i = 0; i < ddRoles.length; i++) {
+                if (rolePermissionMap.containsKey(ddRoles[i])) {
+                    Permission permission = (Permission) 
rolePermissionMap.get(ddRoles[i]);
+                    permission.setDeleteDeny(true);
+                } else {
+                    Permission permission = new Permission();
+                    permission.setUserName(ddRoles[i]);
+                    permission.setDeleteDeny(true);
+                    rolePermissionMap.put(ddRoles[i], permission);
+                }
+            }
+
             rolePermissions = new ArrayList(rolePermissionMap.values());
 
         } catch (UserManagerException e) {
             String msg = "Could not get user manager details. Caused by: " + 
e.getMessage();
+            throw new RegistryException(msg);
         }
 
         return SUCCESS;

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/ResourceData.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/ResourceData.java
  (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/ResourceData.java
  Mon Jan  7 01:27:31 2008
@@ -43,6 +43,7 @@
     private float averageRating;
     private String[] averageStars = new String[5];
     private Date createdOn;
+    private boolean deleteAllowed;
     private Map tagCounts = new HashMap();
 
     public String getName() {
@@ -134,6 +135,14 @@
         this.createdOn = createdOn;
     }
 
+    public boolean isDeleteAllowed() {
+        return deleteAllowed;
+    }
+
+    public void setDeleteAllowed(boolean deleteAllowed) {
+        this.deleteAllowed = deleteAllowed;
+    }
+
     public Map getTagCounts() {
         return tagCounts;
     }

Modified: 
trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/registry-resources.jsp 
Mon Jan  7 01:27:31 2008
@@ -340,7 +340,7 @@
             (<%=resourceData.getAverageRating()%>)
         </td>
         <td>
-            <% if (details.isDeleteAllowed()) { %><a 
href="/wso2registry/system/deleteResource?resourcePath=<%=resourceData.getResourcePath()%>"
 title="Delete" style="margin-left:5px;"><img 
src="/wso2registry/admin/images/icon-trash.gif" border="0" /></a> <% } %>
+            <% if (resourceData.isDeleteAllowed()) { %><a 
href="/wso2registry/system/deleteResource?resourcePath=<%=resourceData.getResourcePath()%>"
 title="Delete" style="margin-left:5px;"><img 
src="/wso2registry/admin/images/icon-trash.gif" border="0" /></a> <% } %>
         </td>
 
     </tr>

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

Reply via email to