ate 2005/02/02 17:30:54 Modified: applications/security/src/java/org/apache/jetspeed/portlets/security/users UserDetailsPortlet.java applications/security/src/webapp/WEB-INF/security/users user-details.jsp Added: applications/security/src/java/org/apache/jetspeed/portlets/security/resources UsersResources.properties UsersPwdResources_en.properties UsersResources_nl.properties Log: Now displaying exception/error messages, for now only password validation errors are localized. Revision Changes Path 1.3 +60 -6 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.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- UserDetailsPortlet.java 22 Dec 2004 22:59:40 -0000 1.2 +++ UserDetailsPortlet.java 3 Feb 2005 01:30:53 -0000 1.3 @@ -16,12 +16,15 @@ package org.apache.jetspeed.portlets.security.users; import java.io.IOException; +import java.io.NotSerializableException; import java.security.Principal; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import java.util.ResourceBundle; import java.util.Set; import java.util.prefs.Preferences; @@ -29,6 +32,7 @@ import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.PortletException; +import javax.portlet.PortletRequest; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; @@ -41,6 +45,9 @@ import org.apache.jetspeed.profiler.rules.PrincipalRule; import org.apache.jetspeed.security.Group; import org.apache.jetspeed.security.GroupManager; +import org.apache.jetspeed.security.InvalidNewPasswordException; +import org.apache.jetspeed.security.InvalidPasswordException; +import org.apache.jetspeed.security.PasswordAlreadyUsedException; import org.apache.jetspeed.security.PasswordCredential; import org.apache.jetspeed.security.Role; import org.apache.jetspeed.security.RoleManager; @@ -93,7 +100,9 @@ /** the id of the groups control */ private static final String GROUPS_CONTROL = "jetspeedGroups"; - + + /** The Error Messages KEY */ + public static final String ERROR_MESSAGES = "errorMessages"; private UserManager userManager; private RoleManager roleManager; @@ -270,6 +279,13 @@ request.setAttribute(SecurityResources.REQUEST_SELECT_TAB, selectedTab); } + + // check for ErrorMessages + ArrayList errorMessages = (ArrayList)PortletMessaging.consume(request, ERROR_MESSAGES); + if (errorMessages != null ) + { + request.setAttribute(ERROR_MESSAGES,errorMessages); + } super.doView(request, response); } @@ -336,7 +352,26 @@ updateUserCredential(actionRequest, actionResponse); } } - } + } + + private void publishErrorMessage(PortletRequest request, String message) + { + try + { + ArrayList errors = (ArrayList)PortletMessaging.receive(request,ERROR_MESSAGES); + if ( errors == null ) + { + errors = new ArrayList(); + } + errors.add(message); + PortletMessaging.publish(request, ERROR_MESSAGES, errors); + } + catch (NotSerializableException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } public void removeUser(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException @@ -354,7 +389,7 @@ } catch (Exception e) { - + publishErrorMessage(actionRequest,e.getMessage()); } } } @@ -377,6 +412,8 @@ private void updateUserCredential(ActionRequest actionRequest, ActionResponse actionResponse) { + ResourceBundle bundle = ResourceBundle.getBundle("org.apache.jetspeed.portlets.security.resources.UsersResources",actionRequest.getLocale()); + String userName = (String) actionRequest.getPortletSession().getAttribute(SecurityResources.PAM_CURRENT_USER, PortletSession.APPLICATION_SCOPE); @@ -417,10 +454,21 @@ } } } + catch ( InvalidPasswordException ipe ) + { + publishErrorMessage(actionRequest,bundle.getString("chgpwd.error.invalidPassword")); + } + catch ( InvalidNewPasswordException inpe ) + { + publishErrorMessage(actionRequest,bundle.getString("chgpwd.error.invalidNewPassword")); + } + catch ( PasswordAlreadyUsedException paue ) + { + publishErrorMessage(actionRequest,bundle.getString("chgpwd.error.passwordAlreadyUsed")); + } catch (SecurityException e) { - // TODO: logging - System.err.println("failed to update user credential " + userName + ": " + e); + publishErrorMessage(actionRequest,e.getMessage()); } } } @@ -529,6 +577,7 @@ } catch (SecurityException e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to remove user from role: " + userName + ", " + roleNames[ix] + e); } @@ -555,6 +604,7 @@ } catch (SecurityException e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to add user to role: " + userName + ", " + roleName + e); } @@ -585,6 +635,7 @@ } catch (SecurityException e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to remove user from group: " + userName + ", " + groupNames[ix] + e); } @@ -611,6 +662,7 @@ } catch (SecurityException e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to add user to group: " + userName + ", " + groupName + e); } @@ -720,6 +772,7 @@ } catch (Exception e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to set rule for principal: " + userName + ", " + locatorName + e); } @@ -758,6 +811,7 @@ } catch (Exception e) { + publishErrorMessage(actionRequest,e.getMessage()); // TODO: logging System.err.println("failed to remove rule for principal: " + userName + ", " + locatorNames[ix] + e); } 1.1 jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/UsersResources.properties Index: UsersResources.properties =================================================================== # Copyright 2004 The Apache Software Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # $Id: UsersResources.properties,v 1.1 2005/02/03 01:30:54 ate Exp $ # ## change password chgpwd.error.invalidPassword=Current password invalid chgpwd.error.invalidNewPassword=Invalid new password chgpwd.error.passwordAlreadyUsed=Password already used 1.1 jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/UsersPwdResources_en.properties Index: UsersPwdResources_en.properties =================================================================== # Copyright 2004 The Apache Software Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # $Id: UsersPwdResources_en.properties,v 1.1 2005/02/03 01:30:54 ate Exp $ # # LOCALIZATION MAINTAINER: # Jetspeed Development Team ## change password chgpwd.error.invalidPassword=Current password invalid chgpwd.error.invalidNewPassword=Invalid new password chgpwd.error.passwordAlreadyUsed=Password already used 1.1 jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/UsersResources_nl.properties Index: UsersResources_nl.properties =================================================================== # Copyright 2004 The Apache Software Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # $Id: UsersResources_nl.properties,v 1.1 2005/02/03 01:30:54 ate Exp $ # ## change password chgpwd.error.invalidPassword=Huidig wachtwoord ongeldig chgpwd.error.invalidNewPassword=Ongeldig nieuw wachtwoord chgpwd.error.passwordAlreadyUsed=Wachtwoord reeds eerder gebruikt 1.7 +43 -0 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.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- user-details.jsp 11 Jan 2005 09:30:52 -0000 1.6 +++ user-details.jsp 3 Feb 2005 01:30:54 -0000 1.7 @@ -14,6 +14,7 @@ <%@ page import="javax.portlet.*" %> <%@ page import="java.util.*" %> <%@ page import="org.apache.portals.bridges.beans.TabBean" %> +<%@ page import="org.apache.jetspeed.portlets.security.users.UserDetailsPortlet" %> <%@ page import="org.apache.jetspeed.portlets.security.users.JetspeedUserBean" %> <%@ page import="org.apache.jetspeed.om.common.preference.*" %> <%@ page import="org.apache.jetspeed.om.common.*" %> @@ -24,6 +25,8 @@ <fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.SecurityResources" /> +<c:set var="errorMessagesKey"><%=UserDetailsPortlet.ERROR_MESSAGES%></c:set> +<c:set var="errorMessages" value="${requestScope[errorMessagesKey]}"/> <portlet:defineObjects/> @@ -57,6 +60,14 @@ <div id="attributes"> <portlet:actionURL var="edit_user_attr_link" /> + <c:if test="${errorMessages != null}"> + <ul> + <c:forEach items="${errorMessages}" var="error"> + <li style="color:red"><c:out value="${error}"/></li> + </c:forEach> + </ul> + </c:if> + <form name="Edit_UserAttr_Form" action="<c:out value="${edit_user_attr_link}"/>" method="post"> <input type="hidden" name="portlet_action" value="security_user.edit_user_attribute"/> @@ -118,6 +129,14 @@ <div id="Credential"> <portlet:actionURL var="edit_credential_link" /> + <c:if test="${errorMessages != null}"> + <ul> + <c:forEach items="${errorMessages}" var="error"> + <li style="color:red"><c:out value="${error}"/></li> + </c:forEach> + </ul> + </c:if> + <form name="Edit_Credential_Form" action="<c:out value="${edit_credential_link}"/>" method="post"> <input type="hidden" name="portlet_action" value="security_user.update_user_credential"/> <table> @@ -194,6 +213,14 @@ <div id="Role"> <portlet:actionURL var="edit_role_link" /> + <c:if test="${errorMessages != null}"> + <ul> + <c:forEach items="${errorMessages}" var="error"> + <li style="color:red"><c:out value="${error}"/></li> + </c:forEach> + </ul> + </c:if> + <form name="Edit_Role_Form" action="<c:out value="${edit_role_link}"/>" method="post"> <input type="hidden" name="portlet_action" value="security_user.edit_role"/> <table> @@ -246,6 +273,14 @@ <div id="Group"> <portlet:actionURL var="edit_group_link" /> + <c:if test="${errorMessages != null}"> + <ul> + <c:forEach items="${errorMessages}" var="error"> + <li style="color:red"><c:out value="${error}"/></li> + </c:forEach> + </ul> + </c:if> + <form name="Edit_Group_Form" action="<c:out value="${edit_group_link}"/>" method="post"> <input type="hidden" name="portlet_action" value="security_user.edit_group"/> <table> @@ -299,6 +334,14 @@ <div id="Profile"> <portlet:actionURL var="edit_profile_link" /> + <c:if test="${errorMessages != null}"> + <ul> + <c:forEach items="${errorMessages}" var="error"> + <li style="color:red"><c:out value="${error}"/></li> + </c:forEach> + </ul> + </c:if> + <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>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]