Author: jmcconnell
Date: Wed Sep 13 14:17:14 2006
New Revision: 443124

URL: http://svn.apache.org/viewvc?view=rev&rev=443124
Log:
move a couple of pages around and improve an action

Added:
    
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/findUser.jsp
   (contents, props changed)
      - copied, changed from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/findUser.jsp
    
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp   
(contents, props changed)
      - copied, changed from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/user.jsp
    
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/userDetails.jsp
   (contents, props changed)
      - copied, changed from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/userDetails.jsp
Removed:
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/findUser.jsp
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/user.jsp
    
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/userDetails.jsp
Modified:
    
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/UserManagementAction.java
    maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml

Modified: 
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/UserManagementAction.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/UserManagementAction.java?view=diff&rev=443124&r1=443123&r2=443124
==============================================================================
--- 
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/UserManagementAction.java
 (original)
+++ 
maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/UserManagementAction.java
 Wed Sep 13 14:17:14 2006
@@ -17,11 +17,12 @@
  * limitations under the License.
  */
 
+import com.opensymphony.xwork.Preparable;
 import org.codehaus.plexus.security.rbac.RBACManager;
+import org.codehaus.plexus.security.system.SecuritySession;
 import org.codehaus.plexus.security.user.User;
 import org.codehaus.plexus.security.user.UserManager;
 import org.codehaus.plexus.security.user.UserNotFoundException;
-import org.codehaus.plexus.security.system.SecuritySession;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
 import java.util.ArrayList;
@@ -37,9 +38,8 @@
  * role-hint="userManagement"
  */
 public class UserManagementAction
-    extends PlexusActionSupport
+    extends PlexusActionSupport implements Preparable
 {
-
     /**
      * @plexus.requirement
      */
@@ -52,12 +52,12 @@
 
     private User user;
 
+    private boolean save = false;
+
     private String email;
 
     private String fullName;
 
-    private boolean locked;
-
     private String username;
 
     private String principal;
@@ -70,23 +70,48 @@
 
     private String resourceName;
 
+    public void prepare()
+        throws Exception
+    {
+
+        if ( username != null )
+        {
+            user = userManager.findUser( username );
+
+            principal = user.getPrincipal().toString();
+            fullName = user.getFullName();
+            email = user.getEmail();
+
+            if ( principal != null && rbacManager.userAssignmentExists( 
principal ) )
+            {
+                assignedRoles = new ArrayList( rbacManager.getAssignedRoles( 
principal ) );
+                availableRoles = new ArrayList( 
rbacManager.getUnassignedRoles( principal ) );
+            }
+            else
+            {
+                assignedRoles = new ArrayList();
+                availableRoles = rbacManager.getAllAssignableRoles();
+            }
+        }
+    }
+
     /**
      * for this method username should be populated
      * 
      * @return
      */
-    public String findUser()
+    public String input()
     {
         try
         {
-            if ( username == null )
+            if ( username != null )
             {
-                return INPUT;
+                user = userManager.findUser( username );
+                return SUCCESS;
             }
             else
             {
-                user = userManager.findUser( username );
-                return SUCCESS;
+                return INPUT;
             }
         }
         catch ( UserNotFoundException ne )
@@ -96,52 +121,26 @@
         }
     }
 
-    /**
-     * For this method, principal should be populated
-     *
-     * @throws Exception
-     */
-    public String display()
+    public String save()
         throws Exception
     {
+        if ( !save )
+        {
+            return INPUT;
+        }
 
-        user = userManager.findUser( username );
-
-        principal = user.getPrincipal().toString();
-        fullName = user.getFullName();
-        email = user.getEmail();
-        locked = user.isLocked();
-
-        // for displaying the potential repositories to be displayed, remove 
the global resource
-        // from the list
-        resources = rbacManager.getAllResources();
-        //resources.remove( rbacManager.getGlobalResource() );
+        User temp = userManager.findUser( username );
 
-        // check if the user has any roles assigned to them, and populate the 
lists for
-        // rendering assign and remove roles links
-        if ( principal != null && rbacManager.userAssignmentExists( principal 
) )
+        if ( email != null )
         {
-            assignedRoles = new ArrayList( rbacManager.getAssignedRoles( 
principal ) );
-            availableRoles = new ArrayList( rbacManager.getUnassignedRoles( 
principal ) );
+            temp.setEmail( email );
         }
-        else
+
+        if ( fullName != null )
         {
-            assignedRoles = new ArrayList();
-            availableRoles = rbacManager.getAllAssignableRoles();
+            temp.setFullName( fullName );
         }
 
-        return SUCCESS;
-    }
-
-    public String save()
-        throws Exception
-    {
-        User temp = userManager.findUser( username );
-
-        temp.setEmail( email );
-        temp.setFullName( fullName );
-        temp.setLocked( locked );
-
         temp = userManager.updateUser( temp );
 
         // overwrite the user in the session with the saved one if and only if 
it is the
@@ -195,16 +194,6 @@
         this.fullName = fullName;
     }
 
-    public boolean isLocked()
-    {
-        return locked;
-    }
-
-    public void setLocked( boolean locked )
-    {
-        this.locked = locked;
-    }
-
     public String getPrincipal()
     {
         return principal;
@@ -253,5 +242,15 @@
     public void setResourceName( String resourceName )
     {
         this.resourceName = resourceName;
+    }
+
+    public boolean isSave()
+    {
+        return save;
+    }
+
+    public void setSave( boolean save )
+    {
+        this.save = save;
     }
 }

Modified: maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=443124&r1=443123&r2=443124
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/resources/xwork.xml Wed Sep 13 
14:17:14 2006
@@ -253,18 +253,22 @@
     </action>
 
 
-    <action name="user" class="userManagement" method="display">
-      <result name="success">/WEB-INF/jsp/user.jsp</result>
+    <action name="user" class="userManagement">
+      <result name="success">/WEB-INF/jsp/admin/user.jsp</result>
+      <result name="input" type="chain">userManagement</result>
+      <interceptor-ref name="configuredPrepareParamsStack"/>
     </action>
 
     <!-- plexus security actions -->
 
-    <action name="userDetails" class="userManagement" method="display">
-      <result name="success">/WEB-INF/jsp/userDetails.jsp</result>
+    <action name="userDetails" class="userManagement" method="save">
+      <result name="input">/WEB-INF/jsp/admin/userDetails.jsp</result>
+      <result name="success" type="chain">user</result>
+      <interceptor-ref name="configuredPrepareParamsStack"/>
     </action>
 
-    <action name="userManagement" class="userManagement" method="findUser">
-      <result name="input">/WEB-INF/jsp/findUser.jsp</result>
+    <action name="userManagement" class="userManagement" method="input">
+      <result name="input">/WEB-INF/jsp/admin/findUser.jsp</result>
       <result name="success" type="chain">user</result>
     </action>
 
@@ -275,7 +279,7 @@
     <action name="removeRoleFromUser" class="plexusSecurityUserAssignment" 
method="removeRole">
       <result name="success" type="chain">user</result>
     </action>
-    
+
   </package>
 </xwork>
 

Copied: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/findUser.jsp
 (from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/findUser.jsp)
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/findUser.jsp?view=diff&rev=443124&p1=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/findUser.jsp&r1=443023&p2=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/findUser.jsp&r2=443124
==============================================================================
    (empty)

Propchange: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/findUser.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp 
(from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/user.jsp)
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp?view=diff&rev=443124&p1=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/user.jsp&r1=443023&p2=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp&r2=443124
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/user.jsp 
(original)
+++ 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp 
Wed Sep 13 14:17:14 2006
@@ -27,15 +27,17 @@
     <div id="contentArea">
       <div id="searchBox">
         <div style="float: right">
+          <%-- add this back in when the functionality works, or when we move 
to the plexus-user-management pages
           <pss:ifAnyAuthorized permissions="edit-all-users,edit-user" 
resource="${username}">
-            <ww:url id="userDetailsUrl" action="userDetails">
+            <ww:url id="userDetailsUrl" action="userDetails" method="input">
               <ww:param 
name="username">${sessionScope.SecuritySessionUser.username}</ww:param>
             </ww:url>
             <ww:a href="%{userDetailsUrl}">Edit details</ww:a>
           </pss:ifAnyAuthorized>
+          --%>
         </div>
 
-        <h2>${sessionScope.SecuritySessionUser.fullName}</h2>
+        <h2>${fullName}</h2>
 
         <table class="bodyTable">
           <tr class="a">
@@ -49,133 +51,48 @@
           </tr>
         </table>
 
-        <h2>Assigned Roles</h2>
+        <h2>Currently Assigned Roles</h2>
 
         <table class="bodyTable">
           <ww:iterator id="role" value="assignedRoles">
-
             <tr class="a">
              <td>
                <em>${role.name}</em><br/>
              </td>
-              <td>
-                <pss:ifAuthorized permission="remove-roles">
-                  <ww:url id="removeAssignedRoleUrl" 
action="removeRoleFromUser">
-                    <ww:param name="principal">${username}</ww:param>
-                    <ww:param name="roleName">${role.name}</ww:param>
-                  </ww:url>
-                  <ww:a href="%{removeAssignedRoleUrl}">Delete</ww:a>
-                </pss:ifAuthorized>
-              </td>
             </tr>
           </ww:iterator>
         </table>
 
-        <h2>Grant Roles</h2>
 
-        <pss:ifAuthorized permission="grant-roles">
-          <table class="bodyTable">
-            <ww:iterator id="role" value="availableRoles">
-              <tr class="a">
-                <td>
-                  <em>${role.name}</em><br/>
-                </td>
-                <td>
-                  <ww:url id="addRoleUrl" action="assignRoleToUser">
-                    <ww:param name="principal">${username}</ww:param>
-                    <ww:param name="roleName">${role.name}</ww:param>
-                  </ww:url>
-                  <ww:a href="%{addRoleUrl}">Add</ww:a>
-                </td>
-              </tr>
-            </ww:iterator>
-          </table>
-        </pss:ifAuthorized>
-
-
-           <%--
-          <p>
-            This following screen needs have the various roles worked into it.
-          </p>
-
-          <table class="bodyTable">
-            <tr class="b">
-              <td>
-                <input type="radio" checked="checked"></input>
-
-              </td>
-              <td>Administrator</td>
-              <td>
-                <select>
-                  <option>(Please Select)</option>
-                  <option>System Administrator</option>
-                  <option>User Administrator</option>
-                </select>
-              </td>
-            </tr>
-            <tr class="a">
-              <td>
-                <input type="radio"></input>
-              </td>
-              <td>Repository</td>
-
-              <td>
-                <select>
-                  <option>(Please Select)</option>
-                  <option>manager</option>
-                  <option>obverser</option>
-                </select>
-                of
-                <ww:select name="resourceName" list="resources" 
listKey="identifier" listValue="identifier" headerKey="" headerValue="(Please 
Select)"/>
-              </td>
-            </tr> --%>
-                 <%--  add in for project level security
-            <tr class="b">
-              <td>
-                <input type="radio"></input>
-              </td>
-              <td>Project</td>
-              <td>
-                <select>
-                  <option>(Please Select)</option>
-
-                  <option>manager</option>
-                  <option>obverser</option>
-                </select>
-                of
-                <select>
-                  <option>(Please Select)</option>
-                  <option>central</option>
-
-                  <option>central-plugins</option>
-                  <option>All repositories</option>
-                </select>
-                for project group
-                <input type="text" name="projectExpression"></input>
-                <br></br>
-                <span style="font-size: x-small">
-                  (eg org.apache.maven gives permissions on that group, and 
any sugroups)
-                </span>
-
-              </td>
-            </tr>
+        <pss:ifAnyAuthorized permissions="grant-roles,remove-roles">
+          <h2>Role Management</h2>
 
-            <tr class="a">
-              <td></td>
-              <td>
-                <input type="submit" value="Add Role"></input>
-              </td>
-              <td></td>
-            </tr>
-
-          </table>
-             --%>
+          <pss:ifAuthorized permission="grant-roles">
+            <h3>Grant</h3>
+            <ww:form action="assignRoleToUser" method="post">
+              <ww:hidden name="principal" value="${username}"/>
+              <ww:hidden name="username" value="${username}"/>
+              <ww:radio name="roleName" list="availableRoles" listKey="name" 
listValue="name" labelposition="left"/>
+              <ww:submit value="Grant"/>
+            </ww:form>
+          </pss:ifAuthorized>
+
+          <pss:ifAuthorized permission="remove-roles">
+            <h3>Remove</h3>
+            <ww:form action="removeRoleFromUser" method="post">
+              <ww:hidden name="principal" value="${username}"/>
+              <ww:hidden name="username" value="${username}"/>
+              <ww:radio name="roleName" list="assignedRoles" listKey="name" 
listValue="name" labelposition="left"/>
+              <ww:submit value="Remove"/>
+            </ww:form>
+          </pss:ifAuthorized>
+        </pss:ifAnyAuthorized>
       </div>
-  </div>
+    </div>
 
-      <div class="clear">
-        <hr/>
-      </div>
+    <div class="clear">
+      <hr/>
+    </div>
 
 
 </body>

Propchange: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/user.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/userDetails.jsp
 (from r443023, 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/userDetails.jsp)
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/userDetails.jsp?view=diff&rev=443124&p1=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/userDetails.jsp&r1=443023&p2=maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/userDetails.jsp&r2=443124
==============================================================================
    (empty)

Propchange: 
maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/userDetails.jsp
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to