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