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]

Reply via email to