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