taylor 2004/10/21 11:43:07
Modified: applications/pam/src/webapp/WEB-INF/view user-details.jsp
applications/pam/src/java/org/apache/jetspeed/portlets/security/resources
SecurityResources_it.properties
SecurityResources_en.properties
SecurityResources.properties
applications/pam/src/java/org/apache/jetspeed/portlets/security
UserDetailsPortlet.java
Log:
reworked the User Manager->Profile tab to account for model change in Principal
Rules (1 principal ... many rules)
Revision Changes Path
1.9 +43 -13
jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/view/user-details.jsp
Index: user-details.jsp
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/pam/src/webapp/WEB-INF/view/user-details.jsp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- user-details.jsp 24 Sep 2004 22:21:15 -0000 1.8
+++ user-details.jsp 21 Oct 2004 18:43:07 -0000 1.9
@@ -209,34 +209,64 @@
<%--Beginning Profile tab data--%>
<%--TODO: switch to c:choose --%>
<c:if test="${selectedTab.id == 'user_profile'}">
- <div id="Profile">
- <portlet:actionURL var="edit_role_link" />
+ <div id="Profile">
+ <portlet:actionURL var="edit_profile_link" />
- <form name="Edit_Group_Form" action="<c:out value="${edit_role_link}"/>"
method="post">
- <input type="hidden" name="portlet_action"
value="security_user.update_user_rule"/>
+ <form name="Edit_Profile_Form" action="<c:out value="${edit_profile_link}"/>"
method="post">
+ <input type="hidden" name="portlet_action"
value="security_user.remove_user_rule"/>
<table>
<tr>
<th> </th>
- <th><fmt:message key="security.profile.rules"/></th>
- <th> </th>
+ <th><fmt:message key="security.name"/></th>
+ <th><fmt:message key="security.rule"/></th>
</tr>
<c:forEach var="rule" items="${rules}">
<tr>
<td>
- <input type="radio" name="user_profile_id"
<c:if test="${rule.id == selectedRule}">checked</c:if> value="<c:out
value="${rule.id}"/>"/>
+ <input type="checkbox" name="user_profile_id"
value="<c:out value="${rule.locatorName}"/>"/>
</td>
<td>
- <c:out value="${rule.id}"/>
+ <c:out value="${rule.locatorName}"/>
</td>
<td>
- <c:out value="${rule.title}"/>
- </td>
+ <c:out value="${rule.profilingRule}"/>
+ </td>
</tr>
</c:forEach>
</table>
- <input type="submit" value="<fmt:message key="security.update"/>"
onClick="this.form.portlet_action.value = 'security_user.update_user_rule'"/>
- </form>
- </div>
+ <input type="submit" value="<fmt:message key="security.remove"/>"
onClick="this.form.portlet_action.value = 'security_user.remove_user_rule'"/>
+ </form>
+ <form name="Add_Profile_Form" action="<c:out value="${edit_profile_link}"/>"
method="post">
+ <input type="hidden" name="portlet_action"
value="security_user.add_rule"/>
+
+ <table>
+ <tr>
+ <td>
+ <fmt:message key="security.name"/>
+ </td>
+ <td>
+ <input type="text" name="locator_name"
value=""/>
+ Common Locator Names: [page,docset]
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <fmt:message key="security.rule"/>
+ </td>
+ <td>
+ <select name="select_rule">
+ <c:forEach var="prule"
items="${prules}">
+ <option value="<c:out
value="${prule.id}"/>">
+ <c:out value="${prule.id}"/>
+ </option>
+ </c:forEach>
+ </select>
+ </td>
+ </tr>
+ </table>
+ <input type="submit" value="<fmt:message key="security.add"/>"/>
+ </form>
+ </div>
</c:if>
<%--End of Profile tab data--%>
1.2 +2 -1
jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties
Index: SecurityResources_it.properties
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SecurityResources_it.properties 14 Oct 2004 12:14:31 -0000 1.1
+++ SecurityResources_it.properties 21 Oct 2004 18:43:07 -0000 1.2
@@ -19,6 +19,7 @@
## general security strings
security.name=Nome
security.value=Valore
+security.rule=Regole
security.update=Aggiorna
security.remove=Rimuovi
security.add=Aggiungi
1.6 +2 -1
jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties
Index: SecurityResources_en.properties
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SecurityResources_en.properties 20 Sep 2004 07:25:23 -0000 1.5
+++ SecurityResources_en.properties 21 Oct 2004 18:43:07 -0000 1.6
@@ -18,6 +18,7 @@
## general security strings
security.name=Name
security.value=Value
+security.rule=Rule
security.update=Update
security.remove=Remove
security.add=Add
1.7 +2 -1
jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources.properties
Index: SecurityResources.properties
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources.properties,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SecurityResources.properties 20 Sep 2004 07:25:23 -0000 1.6
+++ SecurityResources.properties 21 Oct 2004 18:43:07 -0000 1.7
@@ -18,6 +18,7 @@
## general security strings
security.name=Name
security.value=Value
+security.rule=Rule
security.update=Update
security.remove=Remove
security.add=Add
1.10 +69 -36
jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/UserDetailsPortlet.java
Index: UserDetailsPortlet.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/applications/pam/src/java/org/apache/jetspeed/portlets/security/UserDetailsPortlet.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- UserDetailsPortlet.java 8 Oct 2004 06:49:37 -0000 1.9
+++ UserDetailsPortlet.java 21 Oct 2004 18:43:07 -0000 1.10
@@ -39,6 +39,8 @@
import org.apache.jetspeed.portlets.security.users.JetspeedUserBean.StringAttribute;
import org.apache.jetspeed.profiler.ProfileLocator;
import org.apache.jetspeed.profiler.Profiler;
+import org.apache.jetspeed.profiler.ProfilerException;
+import org.apache.jetspeed.profiler.rules.PrincipalRule;
import org.apache.jetspeed.profiler.rules.ProfilingRule;
import org.apache.jetspeed.security.GroupManager;
import org.apache.jetspeed.security.RoleManager;
@@ -62,6 +64,7 @@
private final String VIEW_ROLES = "roles";
private final String VIEW_GROUPS = "groups";
private final String VIEW_RULES = "rules";
+ private final String VIEW_ALL_RULES = "prules";
private final String VIEW_SELECTED_RULE = "selectedRule";
private final String USER_ACTION_PREFIX = "security_user.";
@@ -72,7 +75,8 @@
private final String ACTION_ADD_ROLE = "add_user_role";
private final String ACTION_REMOVE_GROUP = "remove_user_group";
private final String ACTION_ADD_GROUP = "add_user_group";
- private final String ACTION_UPDATE_RULE = "update_user_rule";
+ private final String ACTION_REMOVE_RULE = "remove_user_rule";
+ private final String ACTION_ADD_RULE = "add_rule";
private final String TAB_ATTRIBUTES = "user_attributes";
private final String TAB_ROLE = "user_role";
@@ -161,14 +165,8 @@
}
else if (selectedTab.getId().equals(TAB_PROFILE))
{
- Principal userPrincipal = createPrincipal(user.getSubject(),
UserPrincipal.class);
- // TODO: incorporate locator_name
- ProfilingRule rule = profiler.getRuleForPrincipal(userPrincipal,
ProfileLocator.PAGE_LOCATOR);
- if (rule != null)
- {
- request.setAttribute(VIEW_SELECTED_RULE, rule.getId());
- }
- request.setAttribute(VIEW_RULES, getProfilerRules());
+ request.setAttribute(VIEW_RULES, getRules(user));
+ request.setAttribute(VIEW_ALL_RULES, getProfilerRules());
}
request.setAttribute(PortletApplicationResources.REQUEST_SELECT_TAB,
selectedTab);
@@ -222,9 +220,13 @@
{
addUserGroup(actionRequest, actionResponse);
}
- else if (action.endsWith(this.ACTION_UPDATE_RULE))
+ else if (action.endsWith(this.ACTION_ADD_RULE))
{
- updateUserProfile(actionRequest, actionResponse);
+ addUserProfile(actionRequest, actionResponse);
+ }
+ else if (action.endsWith(this.ACTION_REMOVE_RULE))
+ {
+ removeUserProfile(actionRequest, actionResponse);
}
}
}
@@ -496,7 +498,13 @@
return profiler.getRules();
}
- private void updateUserProfile(ActionRequest actionRequest, ActionResponse
actionResponse)
+ private Collection getRules(User user)
+ {
+ Principal userPrincipal = createPrincipal(user.getSubject(),
UserPrincipal.class);
+ return profiler.getRulesForPrincipal(userPrincipal);
+ }
+
+ private void addUserProfile(ActionRequest actionRequest, ActionResponse
actionResponse)
{
String userName = (String)
actionRequest.getPortletSession().getAttribute(PortletApplicationResources.PAM_CURRENT_USER,
@@ -504,37 +512,62 @@
User user = lookupUser(userName);
if (user != null)
{
- String profileId = actionRequest.getParameter("user_profile_id");
-
- if(profileId != null)
+ String locatorName = actionRequest.getParameter("locator_name");
+ if (locatorName != null && locatorName.trim().length() > 0)
{
try
{
- Principal userPrincipal = createPrincipal(user.getSubject(),
UserPrincipal.class);
- ProfilingRule rule = profiler.getRule(profileId);
- if (userPrincipal != null)
+ Principal userPrincipal = createPrincipal(user.getSubject(),
UserPrincipal.class);
+ String ruleName = actionRequest.getParameter("select_rule");
+ profiler.setRuleForPrincipal(userPrincipal,
+ profiler.getRule(ruleName),
+ locatorName);
+ }
+ catch (Exception e)
+ {
+ // TODO: logging
+ System.err.println("failed to set rule for principal: " +
userName + ", " + locatorName + e);
+ }
+ }
+
+ }
+ }
+
+ private void removeUserProfile(ActionRequest actionRequest, ActionResponse
actionResponse)
+ {
+ String userName = (String)
+
actionRequest.getPortletSession().getAttribute(PortletApplicationResources.PAM_CURRENT_USER,
+ PortletSession.APPLICATION_SCOPE);
+ User user = lookupUser(userName);
+ if (user != null)
+ {
+ String[] locatorNames =
actionRequest.getParameterValues("user_profile_id");
+
+ if(locatorNames != null)
+ {
+ Principal userPrincipal = createPrincipal(user.getSubject(),
UserPrincipal.class);
+ Collection rules = profiler.getRulesForPrincipal(userPrincipal);
+ for (int ix = 0; ix < locatorNames.length; ix++)
+ {
+ try
{
- if (rule == null)
+ Iterator it = rules.iterator();
+ while (it.hasNext())
{
- profiler.setRuleForPrincipal(userPrincipal,
- profiler.getDefaultRule(),
-
ProfileLocator.PAGE_LOCATOR);
- }
- else
- {
- // TODO: only support the page locator for now
- profiler.setRuleForPrincipal(userPrincipal,
- rule,
-
ProfileLocator.PAGE_LOCATOR);
+ PrincipalRule rule = (PrincipalRule)it.next();
+ if (rule.getLocatorName().equals(locatorNames[ix]))
+ {
+ profiler.deletePrincipalRule(rule);
+ }
}
}
+ catch (Exception e)
+ {
+ // TODO: logging
+ System.err.println("failed to remove rule for principal: "
+ userName + ", " + locatorNames[ix] + e);
+ }
}
- catch (Exception e)
- {
- // TODO: logging
- System.err.println("failed to update user + profile: " +
userName + ", " + profileId + e);
- }
- }
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]