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