ate 2005/03/27 15:33:17
Modified:
applications/security/src/java/org/apache/jetspeed/portlets/security/roles
RoleBrowser.java
applications/security/src/java/org/apache/jetspeed/portlets/security/groups
GroupBrowser.java
applications/security/src/java/org/apache/jetspeed/portlets/security
SecurityResources.java
applications/security/src/webapp/WEB-INF/security/users
user-details.jsp
applications/security/src/java/org/apache/jetspeed/portlets/security/users
UserDetailsPortlet.java
Log:
Improvements for UserDetailPortlet:
- add roles/groups select list now filtered for already assigned roles/groups
and suppressed all together if none are available anymore
- on add/remove of role/group by RoleBrowser/GroupBrowser send a message to
UserDetailPortlet to clear its cache
Revision Changes Path
1.2 +3 -1
jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/roles/RoleBrowser.java
Index: RoleBrowser.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/roles/RoleBrowser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RoleBrowser.java 21 Jan 2005 22:09:22 -0000 1.1
+++ RoleBrowser.java 27 Mar 2005 23:33:17 -0000 1.2
@@ -154,6 +154,7 @@
roleManager.removeRole(delete);
this.clearBrowserIterator(request);
PortletMessaging.cancel(request, "role", "selected");
+ PortletMessaging.publish(request,
SecurityResources.USER_BROWSER, "roles", "refresh");
}
}
catch (Exception e)
@@ -193,6 +194,7 @@
roleManager.addRole(roleName);
this.clearBrowserIterator(request);
}
+ PortletMessaging.publish(request,
SecurityResources.USER_BROWSER, "roles", "refresh");
}
catch (Exception e)
{
1.2 +3 -1
jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/groups/GroupBrowser.java
Index: GroupBrowser.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/groups/GroupBrowser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- GroupBrowser.java 21 Jan 2005 22:09:22 -0000 1.1
+++ GroupBrowser.java 27 Mar 2005 23:33:17 -0000 1.2
@@ -154,6 +154,7 @@
groupManager.removeGroup(delete);
this.clearBrowserIterator(request);
PortletMessaging.cancel(request, "group",
"selected");
+ PortletMessaging.publish(request,
SecurityResources.USER_BROWSER, "groups", "refresh");
}
}
catch (Exception e)
@@ -193,6 +194,7 @@
groupManager.addGroup(groupName);
this.clearBrowserIterator(request);
}
+ PortletMessaging.publish(request,
SecurityResources.USER_BROWSER, "groups", "refresh");
}
catch (Exception e)
{
1.3 +4 -1
jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/SecurityResources.java
Index: SecurityResources.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/SecurityResources.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SecurityResources.java 5 Jan 2005 04:24:49 -0000 1.2
+++ SecurityResources.java 27 Mar 2005 23:33:17 -0000 1.3
@@ -41,6 +41,9 @@
public final static String REQUEST_SELECT_PORTLET = "select_portlet";
public final static String REQUEST_SELECT_TAB = "selected_tab";
public final static String PORTLET_ACTION = "portlet_action";
+
+ // UserDetailsPortlet message topic
+ public final static String USER_BROWSER = "user_browser";
/** the selected non-leaf node in the tree view */
public final static String REQUEST_NODE = "node";
1.8 +8 -6
jakarta-jetspeed-2/applications/security/src/webapp/WEB-INF/security/users/user-details.jsp
Index: user-details.jsp
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/security/src/webapp/WEB-INF/security/users/user-details.jsp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- user-details.jsp 3 Feb 2005 01:30:54 -0000 1.7
+++ user-details.jsp 27 Mar 2005 23:33:17 -0000 1.8
@@ -241,7 +241,8 @@
</table>
<input type="submit" value="<fmt:message
key="security.remove"/>" onClick="this.form.portlet_action.value =
'security_user.remove_user_role'" class="portlet-form-button" />
</form>
- <form name="Add_Role_Form" action="<c:out value="${edit_role_link}"/>"
method="post">
+ <c:if test="${not empty jetspeedRoles}">
+ <form name="Add_Role_Form" action="<c:out
value="${edit_role_link}"/>" method="post">
<input type="hidden" name="portlet_action"
value="security_user.add_user_role"/>
<table>
@@ -261,8 +262,8 @@
</tr>
</table>
<input type="submit" value="<fmt:message key="security.add"/>"
class="portlet-form-button" />
- </form>
-
+ </form>
+ </c:if>
</div>
</c:if>
<%--End of Security Role tab data--%>
@@ -301,7 +302,8 @@
</table>
<input type="submit" value="<fmt:message
key="security.remove"/>" onClick="this.form.portlet_action.value =
'security_user.remove_user_group'" class="portlet-form-button" />
</form>
- <form name="Add_Group_Form" action="<c:out
value="${edit_group_link}"/>" method="post">
+ <c:if test="${not empty jetspeedGroups}">
+ <form name="Add_Group_Form" action="<c:out
value="${edit_group_link}"/>" method="post">
<input type="hidden" name="portlet_action"
value="security_user.add_user_group"/>
<table>
@@ -321,8 +323,8 @@
</tr>
</table>
<input type="submit" value="<fmt:message key="security.add"/>"
class="portlet-form-button" />
- </form>
-
+ </form>
+ </c:if>
</div>
</c:if>
<%--End of Security Group tab data--%>
1.4 +32 -8
jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/users/UserDetailsPortlet.java
Index: UserDetailsPortlet.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/users/UserDetailsPortlet.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UserDetailsPortlet.java 3 Feb 2005 01:30:53 -0000 1.3
+++ UserDetailsPortlet.java 27 Mar 2005 23:33:17 -0000 1.4
@@ -201,10 +201,11 @@
request.setAttribute(VIEW_USER, bean);
if (selectedTab.getId().equals(TAB_ROLE))
{
- request.setAttribute(VIEW_ROLES, getRoles(userName));
+ Collection userRoles = getRoles(userName);
+ request.setAttribute(VIEW_ROLES, userRoles );
// check for refresh on roles list
- String refreshRoles =
(String)PortletMessaging.consume(request, "roles", "refresh");
+ String refreshRoles =
(String)PortletMessaging.consume(request, SecurityResources.USER_BROWSER,
"roles");
List roles = null;
if (refreshRoles == null)
{
@@ -229,16 +230,28 @@
catch (SecurityException se)
{
throw new PortletException(se);
- }
- request.setAttribute(ROLES_CONTROL, roles);
+ }
+ ArrayList selectableRoles = new ArrayList(roles);
+ Iterator rolesIter = userRoles.iterator();
+ while ( rolesIter.hasNext() )
+ {
+ Role role = (Role)rolesIter.next();
+ int index =
selectableRoles.indexOf(role.getPrincipal().getName());
+ if (index != -1)
+ {
+ selectableRoles.remove(index);
+ }
+ }
+ request.setAttribute(ROLES_CONTROL, selectableRoles);
}
else if (selectedTab.getId().equals(TAB_GROUP))
{
- request.setAttribute(VIEW_GROUPS, getGroups(userName));
+ Collection userGroups = getGroups(userName);
+ request.setAttribute(VIEW_GROUPS, userGroups);
// check for refresh on groups list
- String refreshGroups =
(String)PortletMessaging.consume(request, "groups", "refresh");
+ String refreshGroups =
(String)PortletMessaging.consume(request, SecurityResources.USER_BROWSER,
"groups");
List groups = null;
if (refreshGroups == null)
{
@@ -264,7 +277,18 @@
{
throw new PortletException(se);
}
- request.setAttribute(GROUPS_CONTROL, groups);
+ ArrayList selectableGroups = new ArrayList(groups);
+ Iterator groupsIter = userGroups.iterator();
+ while ( groupsIter.hasNext() )
+ {
+ Group group = (Group)groupsIter.next();
+ int index =
selectableGroups.indexOf(group.getPrincipal().getName());
+ if (index != -1)
+ {
+ selectableGroups.remove(index);
+ }
+ }
+ request.setAttribute(GROUPS_CONTROL, selectableGroups);
}
else if (selectedTab.getId().equals(TAB_PROFILE))
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]