Author: bdaw
Date: 2007-05-25 05:40:46 -0400 (Fri, 25 May 2007)
New Revision: 7336
Modified:
trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java
trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
trunk/core/src/resources/portal-core-war/WEB-INF/jsp/role/editUserRoles.jsp
trunk/core/src/resources/portal-core-war/WEB-INF/jsp/user/editUserRoles.jsp
Log:
JBPORTAL-1440 - changed checkboxes for user - roles assignation to two select boxes - part
for UserPortlet
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java 2007-05-25
07:34:56 UTC (rev 7335)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/role/RolePortlet.java 2007-05-25
09:40:46 UTC (rev 7336)
@@ -407,7 +407,7 @@
//old stuff
Set roles = roleModule.findRoles();
Role[] rolesArray = new Role[roles.size()];
- rolesArray = (Role[])roles.toArray(rolesArray);
+ //rolesArray = (Role[])roles.toArray(rolesArray);
Role role = null;
DelegateContext allRolesCtx = null;
@@ -682,6 +682,7 @@
response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
response.setRenderParameter("userid", userId);
+ return;
}
@@ -718,6 +719,7 @@
response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
response.setRenderParameter("userid", userId);
+ return;
}
List toRemove = Arrays.asList(rolesToRemove);
Modified: trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-05-25
07:34:56 UTC (rev 7335)
+++ trunk/core/src/main/org/jboss/portal/core/portlet/user/UserPortlet.java 2007-05-25
09:40:46 UTC (rev 7336)
@@ -41,6 +41,8 @@
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
+import java.util.List;
+import java.util.Arrays;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
@@ -494,8 +496,8 @@
Set roles = roleModule.findRoles();
Role[] rolesArray = new Role[roles.size()];
- rolesArray = (Role[])roles.toArray(rolesArray);
- Role role;
+ //rolesArray = (Role[])roles.toArray(rolesArray);
+ /*Role role;
DelegateContext rowCtx = null;
for (int i = 0; i < rolesArray.length; i++)
{
@@ -514,7 +516,47 @@
colCtx.put("name", role.getName());
colCtx.put("displayname", role.getDisplayName());
+ }*/
+
+ Role role = null;
+
+ DelegateContext allRolesCtx = null;
+ for (Iterator it = roles.iterator(); it.hasNext();)
+ {
+ role = (Role)it.next();
+ allRolesCtx = ctx.next("allRoles");
+
+ allRolesCtx.put("name", role.getName());
+ allRolesCtx.put("displayname", role.getDisplayName());
}
+
+ DelegateContext userRolesCtx = null;
+
+ if
(!req.getParameterMap().keySet().contains("selectedRoles"))
+ {
+ for (Iterator it = userRoles.iterator(); it.hasNext();)
+ {
+ role = (Role)it.next();
+ userRolesCtx = ctx.next("userRoles");
+
+ userRolesCtx.put("name", role.getName());
+ userRolesCtx.put("displayname",
role.getDisplayName());
+ }
+ }
+ else
+ {
+ String[] selectedRoles =
req.getParameterValues("selectedRoles");
+ for (int i = 0; i < selectedRoles.length; i++)
+ {
+ String selectedRole = selectedRoles[i];
+ role = roleModule.findRoleByName(selectedRole);
+
+ userRolesCtx = ctx.next("userRoles");
+
+ userRolesCtx.put("name", role.getName());
+ userRolesCtx.put("displayname",
role.getDisplayName());
+ }
+ }
}
catch (IllegalArgumentException e)
{
@@ -1054,27 +1096,116 @@
{
if (request.isUserInRole("Admin"))
{
- String[] selectedRoles = request.getParameterValues("roles");
- String userId = request.getParameters().getParameter("userid");
- try
+
+ String userId = request.getParameters().getParameter("userid");
+
+ if (request.getParameterMap().keySet().contains("addRoles"))
{
- User user = userModule.findUserById(userId);
- Set roles = roleModule.findRolesByNames(selectedRoles);
- membershipModule.assignRoles(user, roles);
- response.setRenderParameter(getOperationName(), OP_SHOWLISTUSERS);
- response.setRenderParameter("usernamefilter",
request.getParameter("usernamefilter"));
- response.setRenderParameter("offset",
request.getParameter("offset"));
- response.setRenderParameter("usersperpage",
request.getParameter("usersperpage"));
+ String[] selectedRoles =
request.getParameterValues("assignedRoles");
+ String[] rolesToAdd = request.getParameterValues("rolesToAdd");
+
+ if (selectedRoles == null)
+ {
+ selectedRoles = new String[]{};
+ }
+ if (rolesToAdd == null)
+ {
+
+ if (selectedRoles.length != 0)
+ {
+ response.setRenderParameter("selectedRoles", selectedRoles);
+ }
+
+ response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
+ response.setRenderParameter("userid", userId);
+ return;
+ }
+
+
+ Set roles = new HashSet();
+ List l1 = Arrays.asList(selectedRoles);
+ List l2 = Arrays.asList(rolesToAdd);
+ roles.addAll(l1);
+ roles.addAll(l2);
+
+ String[] roleNames = new String[roles.size()];
+ roleNames = (String[])roles.toArray(roleNames);
+
+ response.setRenderParameter("selectedRoles", roleNames);
+ response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
+ response.setRenderParameter("userid", userId);
}
- catch (IllegalArgumentException e)
+ else if (request.getParameterMap().keySet().contains("removeRoles"))
{
- // TODO Auto-generated catch block
- e.printStackTrace();
+
+ String[] selectedRoles =
request.getParameterValues("assignedRoles");
+ String[] rolesToRemove =
request.getParameterValues("selectedRoles");
+
+ if (selectedRoles == null)
+ {
+ selectedRoles = new String[]{};
+ }
+
+ if (rolesToRemove == null)
+ {
+ if (selectedRoles.length != 0)
+ {
+ response.setRenderParameter("selectedRoles", selectedRoles);
+ }
+
+ response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
+ response.setRenderParameter("userid", userId);
+ return;
+ }
+
+ List toRemove = Arrays.asList(rolesToRemove);
+
+ Set roles = new HashSet();
+
+ for (int i = 0; i < selectedRoles.length; i++)
+ {
+ String selectedRole = selectedRoles[i];
+
+ if (!toRemove.contains(selectedRole))
+ {
+ roles.add(selectedRole);
+ }
+ }
+
+ String[] roleNames = new String[roles.size()];
+ roleNames = (String[])roles.toArray(roleNames);
+
+ if (roleNames.length != 0)
+ {
+ response.setRenderParameter("selectedRoles", roleNames);
+ }
+
+ response.setRenderParameter("op", OP_SHOWADDROLESTOUSER );
+ response.setRenderParameter("userid", userId);
}
- catch (IdentityException e)
+ else
{
- // TODO Auto-generated catch block
- e.printStackTrace();
+ try
+ {
+ String[] selectedRoles =
request.getParameterValues("assignedRoles");
+ User user = userModule.findUserById(userId);
+ Set roles = roleModule.findRolesByNames(selectedRoles);
+ membershipModule.assignRoles(user, roles);
+ response.setRenderParameter(getOperationName(), OP_SHOWLISTUSERS);
+ response.setRenderParameter("usernamefilter",
request.getParameter("usernamefilter"));
+ response.setRenderParameter("offset",
request.getParameter("offset"));
+ response.setRenderParameter("usersperpage",
request.getParameter("usersperpage"));
+ }
+ catch (IllegalArgumentException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (IdentityException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
}
}
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jsp/role/editUserRoles.jsp
===================================================================
--- trunk/core/src/resources/portal-core-war/WEB-INF/jsp/role/editUserRoles.jsp 2007-05-25
07:34:56 UTC (rev 7335)
+++ trunk/core/src/resources/portal-core-war/WEB-INF/jsp/role/editUserRoles.jsp 2007-05-25
09:40:46 UTC (rev 7336)
@@ -43,10 +43,7 @@
</form>
- <form
- name="<portlet:namespace/>cancel"
- action="<portlet:renderURL
windowState="normal"><portlet:param name="op"
value="showSummary"/></portlet:renderURL>"
- method="post"/>
+
<tr><td><br/></td></tr>
<tr>
<td colspan="3">
@@ -58,6 +55,10 @@
onclick="document.forms['<portlet:namespace/>cancel'].submit();"
value="${n:i18n("Cancel")}"/>
</tr>
+ <form
+ name="<portlet:namespace/>cancel"
+ action="<portlet:renderURL
windowState="normal"><portlet:param name="op"
value="showSummary"/></portlet:renderURL>"
+ method="post"/>
</table>
</span>
Modified: trunk/core/src/resources/portal-core-war/WEB-INF/jsp/user/editUserRoles.jsp
===================================================================
(Binary files differ)