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]

Reply via email to