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