portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r348126 - in /portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets: registration/ security/resources/
Date Tue, 22 Nov 2005 08:00:31 GMT
Author: taylor
Date: Tue Nov 22 00:00:26 2005
New Revision: 348126

URL: http://svn.apache.org/viewcvs?rev=348126&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-412

Start of 
1. ForgottenPasswordPortlet
2. UserRegistrationPortlet

Still todo:
1. refactor common methods between these 2 portlets up into common abstract class
2. calculate the return URL to be used in email template ("click here to login")
3. validation
4. templates (implement, localized location of)
5. portlet.xml
6. need a new impl/algorithm for generatePassword (almost checked in some fine Ostemeiller
code GPL!)

Added:
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
Modified:
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ca.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_de.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_es.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_hu.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ja.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_pl.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ru.properties
    portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_zh.properties

Added: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java?rev=348126&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
(added)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
Tue Nov 22 00:00:26 2005
@@ -0,0 +1,253 @@
+/*
+ * Copyright 2000-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.
+ */
+package org.apache.jetspeed.portlets.registration;
+
+import java.io.IOException;
+import java.security.Principal;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.prefs.Preferences;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequest;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.administration.AdministrationEmailException;
+import org.apache.jetspeed.administration.PortalAdministration;
+import org.apache.jetspeed.security.PasswordCredential;
+import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.jetspeed.security.UserPrincipal;
+import org.apache.portals.bridges.velocity.AbstractVelocityMessagingPortlet;
+import org.apache.velocity.context.Context;
+import org.apache.portals.gems.util.ValidationHelper;
+
+/**
+ * This portlet allows a logged on user to change its password.
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class ForgottenPasswordPortlet extends AbstractVelocityMessagingPortlet
+{
+    private PortalAdministration admin;
+    private UserManager userManager;    
+    
+    // Request Params 
+    private static final String RP_EMAIL_ADDRESS = "email";
+
+    // Messages 
+    private static final String MSG_MESSAGE = "MSG";
+    
+    // Context Variables
+    private static final String CTX_EMAIL_ADDRESS = "email";    
+    private static final String CTX_RETURN_URL = "returnURL";
+    private static final String CTX_NEW_PASSWORD = "password";
+    private static final String CTX_USER_NAME = "username";
+    private static final String CTX_MESSAGE = "MSG";
+
+    // Init Parameter Constants
+    private static final String IP_REDIRECT_PATH = "redirectPath";    
+    private static final String IP_RETURN_URL = "returnURL";
+    private static final String IP_TEMPLATE = "template";
+    
+    // Resource Bundle
+    private static final String RB_EMAIL_SUBJECT = "email.subject.forgotten.password";
+    
+    /** email template to use for merging */
+    private String template;
+    /** servlet path of the return url to be printed and href'd in email template */
+    private String returnUrlPath;
+    /** path where to redirect to after pressing submit on the form */
+    private String redirectPath;
+
+    /** localized emailSubject */
+    private String emailSubject = null;
+    
+    public void init(PortletConfig config) throws PortletException
+    {
+        super.init(config);
+        admin = (PortalAdministration) 
+                    getPortletContext().getAttribute(CommonPortletServices.CPS_PORTAL_ADMINISTRATION);
+        if (null == admin)
+        {
+            throw new PortletException("Failed to find the Portal Administration on portlet
initialization");
+        }
+        userManager = (UserManager) 
+            getPortletContext().getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
+        if (null == userManager)
+        {
+            throw new PortletException("Failed to find the User Manager on portlet initialization");
+        }        
+        
+        this.returnUrlPath = config.getInitParameter(IP_RETURN_URL);
+        this.redirectPath = config.getInitParameter(IP_REDIRECT_PATH);
+        this.template = config.getInitParameter(IP_TEMPLATE);
+    }
+    
+    public void doView(RenderRequest request, RenderResponse response) 
+    throws PortletException, IOException
+    {
+        response.setContentType("text/html");                
+        Context context = getContext(request);        
+        String email = request.getParameter(RP_EMAIL_ADDRESS);        
+        context.put(CTX_EMAIL_ADDRESS, email);
+        context.put(CTX_MESSAGE, consumeRenderMessage(request, MSG_MESSAGE));        
+        super.doView(request, response);
+    }
+
+    public void processAction(ActionRequest request, ActionResponse response) 
+        throws PortletException, IOException
+    {
+        List errors = new LinkedList();
+                            
+        String email = request.getParameter(RP_EMAIL_ADDRESS);
+        
+        // validation
+        if (!ValidationHelper.isEmailAddress(email, true, 80))
+        {
+            // TODO: get error message from localized resource
+            errors.add("Please enter a valid Email address.");  
+        }
+        
+        
+        if (errors.size() > 0)
+        {
+            publishRenderMessage(request, MSG_MESSAGE, errors);
+            return;
+        }
+        
+        User user = null;
+        try
+        {
+            user = admin.lookupUserFromEmail(email);
+        } 
+        catch (Exception e) 
+        {
+            // TODO: get message from localized messages
+            publishRenderMessage(request, MSG_MESSAGE, 
+                    makeMessage("Sorry but we could not find this email address on file.
Are you sure you typed it in correctly?"));
+            return;
+        }
+
+        try 
+        {
+            String userName = getUserName(user);
+            String oldPassword = getPassword(user);
+            String newPassword = admin.generatePassword();             
+            userManager.setPassword(userName, oldPassword, newPassword);
+            userManager.setPasswordUpdateRequired(userName, true);
+            Preferences pref = user.getUserAttributes();
+            String[] keys = pref.keys();
+            Map userAttributes = new HashMap();
+            if (keys != null)
+            {
+                for (int ix = 0; ix < keys.length; ix++)
+                {
+                    // TODO: how the hell do i tell the pref type
+                    // ASSuming they are all strings (sigh)
+                    userAttributes.put(keys[ix], pref.get(keys[ix], ""));
+                }
+            }
+            // special attributes
+            userAttributes.put(CTX_RETURN_URL, generateReturnURL(request, response));
+            userAttributes.put(CTX_NEW_PASSWORD, newPassword);
+            userAttributes.put(CTX_USER_NAME, userName);
+            
+            admin.sendEmail(email, getEmailSubject(request), this.template, userAttributes);
+            
+            response.sendRedirect(this.redirectPath);
+        }
+        catch (AdministrationEmailException e)
+        {
+            publishRenderMessage(request, CTX_MESSAGE, 
+                    makeMessage(e.getMessage()));
+        }
+        catch (Exception e) 
+        {
+            publishRenderMessage(request, CTX_MESSAGE, makeMessage("Failed to send password:
" + e.toString()));
+        }
+        
+    }
+
+    protected String getEmailSubject(PortletRequest request)
+    {
+        ResourceBundle resource = getPortletConfig().getResourceBundle(request.getLocale());
+        this.emailSubject = resource.getString(RB_EMAIL_SUBJECT);
+        if (this.emailSubject == null)
+            this.emailSubject = "Password Notification";
+        return this.emailSubject;
+    }
+    
+    protected String generateReturnURL(ActionRequest request, ActionResponse response)
+    {
+        // TODO: get the FULL PORTAL URL return address to login from init param        
+        return "http://TODO-FIXME" + this.returnUrlPath; 
+    }
+    
+    protected String getUserName(User user)
+    {
+        Principal principal = null;
+        Iterator principals = user.getSubject().getPrincipals().iterator();
+        while (principals.hasNext())
+        {      
+            Object o = principals.next();
+            if (o instanceof UserPrincipal)
+            {
+                principal = (Principal)o;
+                return principal.toString();
+            }
+                
+        }
+        return null;        
+    }
+
+    protected String getPassword(User user)
+    {
+        PasswordCredential credential = null;
+        
+        Set credentials = user.getSubject().getPrivateCredentials();
+        Iterator iter = credentials.iterator();
+        while (iter.hasNext())
+        {
+            Object o = iter.next();
+            if (o instanceof PasswordCredential)
+            {
+                credential = (PasswordCredential)o;
+                return credential.toString();
+            }
+        }
+        return null;                
+    }
+    
+    protected List makeMessage(String msg)
+    {
+        List errors = new LinkedList();
+        errors.add(msg);
+        return errors;
+    }
+
+}

Added: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java?rev=348126&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
(added)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
Tue Nov 22 00:00:26 2005
@@ -0,0 +1,254 @@
+/*
+ * Copyright 2000-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.
+ */
+package org.apache.jetspeed.portlets.registration;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletRequest;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.administration.PortalAdministration;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.portals.bridges.velocity.AbstractVelocityMessagingPortlet;
+import org.apache.velocity.context.Context;
+
+/**
+ * This portlet allows a logged on user to change its password.
+ *
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @version $Id: $
+ */
+public class UserRegistrationPortlet extends AbstractVelocityMessagingPortlet
+{
+    private PortalAdministration admin;
+    private UserManager userManager;
+ 
+
+    // Messages 
+    private static final String MSG_MESSAGE = "MSG";    
+    private static final String MSG_USERINFO = "user";
+    
+    // Init Parameters
+    private static final String IP_ROLES = "roles"; // comma separated    
+    private static final String IP_GROUPS = "groups"; // comma separated
+    private static final String IP_TEMPLATE = "template";
+    private static final String IP_RULES_NAMES = "rulesNames";
+    private static final String IP_RULES_VALUES = "rulesValues";
+    private static final String IP_REDIRECT_PATH = "redirectPath";    
+    private static final String IP_RETURN_URL = "returnURL";
+    
+    // Context Variables
+    private static final String CTX_RETURN_URL = "returnURL";
+    private static final String CTX_MESSAGE = "MSG";
+    private static final String CTX_USERINFO = "user";    
+    
+    // Resource Bundle
+    private static final String RB_EMAIL_SUBJECT = "email.subject.registration";
+    
+    /** email template to use for merging */
+    private String template;
+
+    /** localized emailSubject */
+    private String emailSubject = null;
+    
+    /** path where to redirect to after pressing submit on the form */
+    private String redirectPath;
+
+    /** servlet path of the return url to be printed and href'd in email template */
+    private String returnUrlPath;
+    
+    /** roles */
+    private List roles;
+    
+    /** groups */
+    private List groups;
+    
+    /** profile rules */
+    private Map rules;
+    
+    public void init(PortletConfig config) throws PortletException
+    {
+        super.init(config);
+        admin = (PortalAdministration) 
+                    getPortletContext().getAttribute(CommonPortletServices.CPS_PORTAL_ADMINISTRATION);
+        if (null == admin)
+        {
+            throw new PortletException("Failed to find the Portal Administration on portlet
initialization");
+        }
+        userManager = (UserManager)  
+        getPortletContext().getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
+        if (null == userManager)
+        { 
+            throw new PortletException("Failed to find the User Manager on portlet initialization");
+        } 
+        
+        // roles
+        this.roles = getInitParameterList(config, IP_ROLES);
+        
+        // groups
+        this.groups = getInitParameterList(config, IP_GROUPS);
+        
+        // rules (name,value pairs)
+        List names = getInitParameterList(config, IP_RULES_NAMES);
+        List values = getInitParameterList(config, IP_RULES_VALUES);
+        rules = new HashMap();
+        for (int ix = 0; ix < ((names.size() < values.size()) ? names.size() : values.size());
ix++)
+        {
+            rules.put(names.get(ix), values.get(ix));
+        }
+   
+        // user attributes ? 
+        
+        this.template = config.getInitParameter(IP_TEMPLATE);
+        this.redirectPath = config.getInitParameter(IP_REDIRECT_PATH);
+        this.returnUrlPath = config.getInitParameter(IP_RETURN_URL);        
+    }
+    
+    public void doView(RenderRequest request,
+                       RenderResponse response) 
+        throws PortletException, IOException 
+    {
+        response.setContentType("text/html");                
+        Context context = getContext(request);        
+        context.put(CTX_USERINFO, this.receiveRenderMessage(request, MSG_USERINFO));
+        context.put(CTX_MESSAGE, consumeRenderMessage(request, MSG_MESSAGE));        
+        super.doView(request, response);                
+    }
+    
+    public void processAction(ActionRequest actionRequest,
+            ActionResponse actionResponse) throws PortletException, IOException 
+    {
+        List errors = new LinkedList();
+        
+        // TODO: determine which PLT.D Information to register with
+        String familyName = actionRequest.getParameter("user.name.family");
+        String givenName = actionRequest.getParameter("user.name.given");     
+        String email = actionRequest.getParameter("user.email");
+        
+        String userName = actionRequest.getParameter("user.name");
+        String password = actionRequest.getParameter("password");
+        String verifyPassword = actionRequest.getParameter("verifyPassword");
+
+        // TODO: Validation
+        
+        // Could have two modes (init param or pref) of user name creation:
+        //  1. use email address
+        //  2. request user id
+        // Could have two modes (init param or pref) of password creation
+        //  1. generate new password automatically
+        //  2. enter a new password and verify
+        
+        // TODO: add select user attributes to map
+        Map userInfo = new HashMap();
+        
+        boolean requestUserId = true;
+        if (requestUserId)
+        {
+            boolean userIdExistsFlag = true;
+            try
+            {
+                User user = userManager.getUser(userName);
+            } 
+            catch (SecurityException e) 
+            {
+                userIdExistsFlag = false;
+            }
+    //
+            if (userIdExistsFlag) 
+            {
+                // TODO: localize messages
+                errors.add("Requested User ID already exists.  Please select another User
Id.");
+                publishRenderMessage(actionRequest, MSG_MESSAGE, errors);
+                return;
+            }
+        }
+        
+        try 
+        {
+            boolean generatePasswordOption = true;
+            if (generatePasswordOption)
+            {
+                password = admin.generatePassword();
+            }
+            
+            admin.registerUser(userName, 
+                               password, 
+                               this.roles, 
+                               this.groups, 
+                               userInfo, 
+                               rules, 
+                               template);
+          
+            // special attributes
+            userInfo.put(CTX_RETURN_URL, generateReturnURL(actionRequest, actionResponse));
+            
+            admin.sendEmail(email, getEmailSubject(actionRequest), this.template, userInfo);
+            
+            actionResponse.sendRedirect(this.redirectPath);
+
+        } 
+        catch (Exception e) 
+        {
+            // TODO: localize messages
+            errors.add("Failed to add user. " + e.toString());
+            publishRenderMessage(actionRequest, MSG_MESSAGE, errors);            
+        }
+    }
+    
+    protected String getEmailSubject(PortletRequest request)
+    {
+        ResourceBundle resource = getPortletConfig().getResourceBundle(request.getLocale());
+        this.emailSubject = resource.getString(RB_EMAIL_SUBJECT);
+        if (this.emailSubject == null)
+            this.emailSubject = "Registration Confirmation";
+        return this.emailSubject;
+    }
+
+    protected List getInitParameterList(PortletConfig config, String ipName)
+    {
+        String temp = config.getInitParameter(ipName);
+        if (temp == null)
+            return new ArrayList();
+        
+        String[] temps = temp.split("\\,");
+        for (int ix = 0; ix < temps.length; ix++)
+            temps[ix] = temps[ix].trim();        
+        
+        return Arrays.asList(temps);        
+    }
+    
+    protected String generateReturnURL(ActionRequest request, ActionResponse response)
+    {
+        // TODO: get the FULL PORTAL URL return address to login from init param        
+        return "http://TODO-FIXME" + this.returnUrlPath; 
+    }
+    
+}

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ca.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ca.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ca.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ca.properties
Tue Nov 22 00:00:26 2005
@@ -72,3 +72,9 @@
 
 ## user
 user.principal.name=Principal
+
+c
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_de.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_de.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_de.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_de.properties
Tue Nov 22 00:00:26 2005
@@ -79,3 +79,8 @@
 ## user
 user.principal.name=Prinzipal
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_en.properties
Tue Nov 22 00:00:26 2005
@@ -88,4 +88,10 @@
 security.profiling.rule=Profiling Rule:
 security.add.user.submit=Add User
 security.add.new.user=Add New User
-security.remove.user=Remove User
\ No newline at end of file
+security.remove.user=Remove User
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_es.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_es.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_es.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_es.properties
Tue Nov 22 00:00:26 2005
@@ -73,3 +73,8 @@
 ## user
 user.principal.name=Principal
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_hu.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_hu.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_hu.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_hu.properties
Tue Nov 22 00:00:26 2005
@@ -73,3 +73,8 @@
 ## user
 user.principal.name=Igazgat\u00f3
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_it.properties
Tue Nov 22 00:00:26 2005
@@ -46,3 +46,8 @@
 ## user
 user.principal.name=Principale
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ja.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ja.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ja.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ja.properties
Tue Nov 22 00:00:26 2005
@@ -88,4 +88,10 @@
 security.profiling.rule=\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30eb\u30fc\u30eb:
 security.add.user.submit=\u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0
 security.add.new.user=\u65b0\u898f\u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0
-security.remove.user=\u30e6\u30fc\u30b6\u30fc\u306e\u524a\u9664
\ No newline at end of file
+security.remove.user=\u30e6\u30fc\u30b6\u30fc\u306e\u524a\u9664
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_pl.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_pl.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_pl.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_pl.properties
Tue Nov 22 00:00:26 2005
@@ -71,3 +71,8 @@
 ## user
 user.principal.name=Principal
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ru.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ru.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ru.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_ru.properties
Tue Nov 22 00:00:26 2005
@@ -71,3 +71,8 @@
 ## user
 user.principal.name=Principal
 
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation

Modified: portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_zh.properties
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_zh.properties?rev=348126&r1=348125&r2=348126&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_zh.properties
(original)
+++ portals/jetspeed-2/trunk/applications/security/src/java/org/apache/jetspeed/portlets/security/resources/SecurityResources_zh.properties
Tue Nov 22 00:00:26 2005
@@ -79,3 +79,9 @@
 
 ## user
 user.principal.name=\u7528\u6237\u540d
+
+# forgotten password feature
+email.subject.forgotten.password = Password Notification
+
+# registration
+email.subject.registration = Registration Confirmation



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message