[pal-cvs 2421] [153] added forgotten password.

svnno****@sourc***** svnno****@sourc*****
2007年 5月 21日 (月) 18:15:34 JST


Revision: 153
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=153
Author:   shinsuke
Date:     2007-05-21 18:15:33 +0900 (Mon, 21 May 2007)

Log Message:
-----------
added forgotten password.

Modified Paths:
--------------
    pal-admin/trunk/pom.xml
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/PALAdminConstants.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserRegistrationService.java
    pal-admin/trunk/src/main/resources/PAMessages.properties
    pal-admin/trunk/src/main/resources/appMessages.properties
    pal-admin/trunk/src/main/resources/appMessages_ja.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label_ja.properties
    pal-admin/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml
    pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/forgottenPasswdEmail.vm
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/forgottenPasswdEmail.vm

Added Paths:
-----------
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/AbstractUserRegistrationFilter.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/ForgottenPasswordFilter.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ForgottenPasswordPage.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ResetPasswordPage.java
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword_ja.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration_ja.properties
    pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html
    pal-admin/trunk/src/main/webapp/view/registration/resetPassword.html

Removed Paths:
-------------
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm


-------------- next part --------------
Modified: pal-admin/trunk/pom.xml
===================================================================
--- pal-admin/trunk/pom.xml	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/pom.xml	2007-05-21 09:15:33 UTC (rev 153)
@@ -55,7 +55,7 @@
             <updateReleaseInfo>true</updateReleaseInfo>
           </configuration>
         </plugin>
-<!--
+        <!--
                     <plugin>
                     <artifactId>maven-site-plugin</artifactId>
                     <configuration>
@@ -96,7 +96,7 @@
           </execution>
         </executions>
       </plugin>
-<!--
+      <!--
                 <plugin>
                 <artifactId>maven-javadoc-plugin</artifactId>
                 <executions>
@@ -134,7 +134,7 @@
     </repository>
   </repositories>
   <dependencies>
-<!-- SERVLET DEV: BEGIN @@@
+    <!-- SERVLET DEV: BEGIN @@@
     <dependency>
       <groupId>jp.sf.pal</groupId>
       <artifactId>faces-dev-filter</artifactId>
@@ -241,14 +241,14 @@
       <version>2.6.2</version>
       <type>jar</type>
     </dependency>
-<!-- Jetspeed2 -->
+    <!-- Jetspeed2 -->
     <dependency>
       <groupId>org.apache.portals.jetspeed-2</groupId>
       <artifactId>jetspeed-api</artifactId>
       <version>2.2-dev_pal-1.0-beta5-dev</version>
-<!-- PORTLET DEV: BEGIN -->
+      <!-- PORTLET DEV: BEGIN -->
       <scope>provided</scope>
-<!-- PORTLET DEV: END -->
+      <!-- PORTLET DEV: END -->
     </dependency>
     <dependency>
       <groupId>org.apache.portals.jetspeed-2</groupId>
@@ -259,11 +259,11 @@
       <groupId>org.apache.pluto</groupId>
       <artifactId>pluto</artifactId>
       <version>1.0.1</version>
-<!-- PORTLET DEV: BEGIN -->
+      <!-- PORTLET DEV: BEGIN -->
       <scope>provided</scope>
-<!-- PORTLET DEV: END -->
+      <!-- PORTLET DEV: END -->
     </dependency>
-<!-- FOR TEST 
+    <!-- FOR TEST 
     <dependency>
       <groupId>org.seasar.container</groupId>
       <artifactId>s2-framework</artifactId>
@@ -283,7 +283,7 @@
       <plugin>
         <artifactId>maven-project-info-reports-plugin</artifactId>
       </plugin>
-<!--
+      <!--
                 <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>surefire-report-maven-plugin</artifactId>
@@ -308,13 +308,13 @@
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>cobertura-maven-plugin</artifactId>
         <version>2.0-SNAPSHOT</version>
-<!--
+        <!--
                     <configuration>
                     <outputDirectory>${project.build.directory}/site/cobertura</outputDirectory>
                     </configuration>
                 -->
       </plugin>
-<!--
+      <!--
                 <plugin>
                 <artifactId>maven-javadoc-plugin</artifactId>
                 </plugin>

Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/PALAdminConstants.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/PALAdminConstants.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/PALAdminConstants.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -111,9 +111,11 @@
 
     public static final String RULE_VALUES = PREFIX + "RuleValues";
 
-    public static final String EMAIL_TEMPLATE_LOCATION = PREFIX + "EmailTemplateLocation";
+    public static final String EMAIL_TEMPLATE_LOCATION = PREFIX
+            + "EmailTemplateLocation";
 
-    public static final String EMAIL_TEMPLATE_NAME = PREFIX + "EmailTemplateName";
+    public static final String EMAIL_TEMPLATE_NAME = PREFIX
+            + "EmailTemplateName";
 
     public static final String TEMPLATE_LOCATOR = PREFIX + "TemplateLocator";
 
@@ -127,15 +129,14 @@
 
     public static final String SEND_MAIL = PREFIX + "SendMail";
 
-    public static final String RETURN_URL = PREFIX + "ReturnUrl";
+    public static final String RETURN_PATH = PREFIX + "ReturnPath";
 
-    public static final String REDIRECT_PATH = PREFIX + "RedirectPath";
-
     public static final String USER_REGISTRATION_PARAMS = PREFIX
             + "UserRegistrationParams";
 
     public static final String DEFAULT_TEMPLATE_LOCATION = "/WEB-INF/view/userreg/";
 
     public static final String DEFAULT_TEMPLATE_NAME = "userRegistrationEmail.vm";
+
     public static final String CTX_RETURN_URL = "returnURL";
 }

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/AbstractUserRegistrationFilter.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/AbstractUserRegistrationFilter.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/AbstractUserRegistrationFilter.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,202 @@
+package jp.sf.pal.admin.filter;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import jp.sf.pal.admin.PALAdminConstants;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.administration.PortalAdministration;
+import org.apache.jetspeed.locator.JetspeedTemplateLocator;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.portals.bridges.portletfilter.PortletFilter;
+import org.apache.portals.bridges.portletfilter.PortletFilterChain;
+import org.apache.portals.bridges.portletfilter.PortletFilterConfig;
+
+public abstract class AbstractUserRegistrationFilter implements PortletFilter
+{
+
+    private PortalAdministration portalAdministration;
+
+    private UserManager userManager;
+
+    private Map<String, Object> userRegistrationParams;
+
+    public void destroy()
+    {
+        portalAdministration = null;
+        userManager = null;
+        userRegistrationParams = null;
+    }
+
+    public void init(PortletFilterConfig filterConfig) throws PortletException
+    {
+        PortletConfig portletConfig = filterConfig.getPortletConfig();
+        PortletContext portletContext = portletConfig.getPortletContext();
+
+        // portalAdministration
+        portalAdministration = (PortalAdministration) portletContext
+                .getAttribute(CommonPortletServices.CPS_PORTAL_ADMINISTRATION);
+        if (portalAdministration == null)
+        {
+            throw new PortletException(
+                    "Failed to find the `prtaon portlet initialization");
+        }
+
+        // userManager
+        userManager = (UserManager) portletContext
+                .getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
+        if (userManager == null)
+        {
+            throw new PortletException(
+                    "Failed to find the User Manager on portlet initialization");
+        }
+
+        userRegistrationParams = new HashMap<String, Object>();
+
+        String templateLocation = portletConfig
+                .getInitParameter(PALAdminConstants.EMAIL_TEMPLATE_LOCATION);
+        if (templateLocation == null)
+        {
+            templateLocation = PALAdminConstants.DEFAULT_TEMPLATE_LOCATION;
+        }
+        templateLocation = portletContext.getRealPath(templateLocation);
+        userRegistrationParams.put(PALAdminConstants.EMAIL_TEMPLATE_LOCATION,
+                templateLocation);
+
+        String templateName = portletConfig
+                .getInitParameter(PALAdminConstants.EMAIL_TEMPLATE_NAME);
+        if (templateName == null)
+        {
+            templateName = PALAdminConstants.DEFAULT_TEMPLATE_NAME;
+        }
+        userRegistrationParams.put(PALAdminConstants.EMAIL_TEMPLATE_NAME,
+                templateName);
+
+        ArrayList<String> roots = new ArrayList<String>(1);
+        roots.add(templateLocation);
+
+        try
+        {
+            JetspeedTemplateLocator templateLocator = new JetspeedTemplateLocator(
+                    roots, "email", portletContext.getRealPath("/"));
+            templateLocator.start();
+            userRegistrationParams.put(PALAdminConstants.TEMPLATE_LOCATOR,
+                    templateLocator);
+        }
+        catch (FileNotFoundException e)
+        {
+            throw new PortletException("Could not start the template locator.",
+                    e);
+        }
+    }
+
+    public void processActionFilter(ActionRequest request,
+            ActionResponse response, PortletFilterChain chain)
+            throws PortletException, IOException
+    {
+        request.setAttribute(PALAdminConstants.PORTAL_ADMINISTRATION_COMPONENT,
+                portalAdministration);
+        request.setAttribute(PALAdminConstants.USER_MANAGER_COMPONENT,
+                userManager);
+        request.setAttribute(PALAdminConstants.USER_REGISTRATION_PARAMS,
+                userRegistrationParams);
+
+        chain.processActionFilter(request, response);
+    }
+
+    public void renderFilter(RenderRequest request, RenderResponse response,
+            PortletFilterChain chain) throws PortletException, IOException
+    {
+        request.setAttribute(PALAdminConstants.PORTAL_ADMINISTRATION_COMPONENT,
+                portalAdministration);
+        request.setAttribute(PALAdminConstants.USER_MANAGER_COMPONENT,
+                userManager);
+        request.setAttribute(PALAdminConstants.USER_REGISTRATION_PARAMS,
+                userRegistrationParams);
+
+        chain.renderFilter(request, response);
+    }
+
+    protected List<String> getInitParameterList(PortletConfig portletConfig,
+            String ipName)
+    {
+        String temp = portletConfig.getInitParameter(ipName);
+        if (temp == null)
+        {
+            return new ArrayList<String>();
+        }
+
+        String[] temps = temp.split("\\,");
+        for (int ix = 0; ix < temps.length; ix++)
+        {
+            temps[ix] = temps[ix].trim();
+        }
+
+        return Arrays.asList(temps);
+    }
+
+    /**
+     * @return the portalAdministration
+     */
+    public PortalAdministration getPortalAdministration()
+    {
+        return portalAdministration;
+    }
+
+    /**
+     * @param portalAdministration the portalAdministration to set
+     */
+    public void setPortalAdministration(
+            PortalAdministration portalAdministration)
+    {
+        this.portalAdministration = portalAdministration;
+    }
+
+    /**
+     * @return the userManager
+     */
+    public UserManager getUserManager()
+    {
+        return userManager;
+    }
+
+    /**
+     * @param userManager the userManager to set
+     */
+    public void setUserManager(UserManager userManager)
+    {
+        this.userManager = userManager;
+    }
+
+    /**
+     * @return the userRegistrationParams
+     */
+    public Map<String, Object> getUserRegistrationParams()
+    {
+        return userRegistrationParams;
+    }
+
+    /**
+     * @param userRegistrationParams the userRegistrationParams to set
+     */
+    public void setUserRegistrationParams(
+            Map<String, Object> userRegistrationParams)
+    {
+        this.userRegistrationParams = userRegistrationParams;
+    }
+
+}
\ No newline at end of file


Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/AbstractUserRegistrationFilter.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/ForgottenPasswordFilter.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/ForgottenPasswordFilter.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/ForgottenPasswordFilter.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,28 @@
+package jp.sf.pal.admin.filter;
+
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+
+import jp.sf.pal.admin.PALAdminConstants;
+
+import org.apache.portals.bridges.portletfilter.PortletFilterConfig;
+
+public class ForgottenPasswordFilter extends AbstractUserRegistrationFilter
+{
+    public ForgottenPasswordFilter()
+    {
+        super();
+    }
+
+    public void init(PortletFilterConfig filterConfig) throws PortletException
+    {
+        super.init(filterConfig);
+
+        PortletConfig portletConfig = filterConfig.getPortletConfig();
+
+        String returnContextPath = portletConfig
+                .getInitParameter(PALAdminConstants.RETURN_PATH);
+        getUserRegistrationParams().put(PALAdminConstants.RETURN_PATH,
+                returnContextPath);
+    }
+}


Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/ForgottenPasswordFilter.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -16,238 +16,90 @@
  */
 package jp.sf.pal.admin.filter;
 
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
 import javax.portlet.PortletConfig;
-import javax.portlet.PortletContext;
 import javax.portlet.PortletException;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
 
 import jp.sf.pal.admin.PALAdminConstants;
 
-import org.apache.jetspeed.CommonPortletServices;
-import org.apache.jetspeed.administration.PortalAdministration;
-import org.apache.jetspeed.locator.JetspeedTemplateLocator;
-import org.apache.jetspeed.security.UserManager;
 import org.apache.portals.bridges.portletfilter.PortletFilter;
-import org.apache.portals.bridges.portletfilter.PortletFilterChain;
 import org.apache.portals.bridges.portletfilter.PortletFilterConfig;
 
-public class UserRegistrationFilter implements PortletFilter
+public class UserRegistrationFilter extends AbstractUserRegistrationFilter
+        implements PortletFilter
 {
-    private PortalAdministration portalAdministration;
-
-    private UserManager userManager;
-
-    private Map<String, Object> userRegistrationParams;
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.apache.portals.bridges.portletfilter.PortletFilter#destroy()
-     */
-    public void destroy()
+    public UserRegistrationFilter()
     {
-        portalAdministration = null;
-        userManager = null;
-        userRegistrationParams = null;
+        super();
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.apache.portals.bridges.portletfilter.PortletFilter#init(org.apache.portals.bridges.portletfilter.PortletFilterConfig)
-     */
     public void init(PortletFilterConfig filterConfig) throws PortletException
     {
+        super.init(filterConfig);
+
         PortletConfig portletConfig = filterConfig.getPortletConfig();
-        PortletContext portletContext = portletConfig.getPortletContext();
-        if (!PALAdminConstants.DEBUG)
-        {
-            // portalAdministration
-            portalAdministration = (PortalAdministration) portletContext
-                    .getAttribute(CommonPortletServices.CPS_PORTAL_ADMINISTRATION);
-            if (portalAdministration == null)
-            {
-                throw new PortletException(
-                        "Failed to find the `prtaon portlet initialization");
-            }
 
-            // userManager
-            userManager = (UserManager) portletContext
-                    .getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
-            if (userManager == null)
-            {
-                throw new PortletException(
-                        "Failed to find the User Manager on portlet initialization");
-            }
+        // roles
+        List<String> roles = getInitParameterList(portletConfig,
+                PALAdminConstants.ROLES);
+        getUserRegistrationParams().put(PALAdminConstants.ROLES, roles);
 
-            userRegistrationParams = new HashMap<String, Object>();
+        // groups
+        List<String> groups = getInitParameterList(portletConfig,
+                PALAdminConstants.GROUPS);
+        getUserRegistrationParams().put(PALAdminConstants.GROUPS, groups);
 
-            // roles
-            List<String> roles = getInitParameterList(portletConfig,
-                    PALAdminConstants.ROLES);
-            userRegistrationParams.put(PALAdminConstants.ROLES, roles);
-
-            // groups
-            List<String> groups = getInitParameterList(portletConfig,
-                    PALAdminConstants.GROUPS);
-            userRegistrationParams.put(PALAdminConstants.GROUPS, groups);
-
-            // rules (name,value pairs)
-            List<String> names = getInitParameterList(portletConfig,
-                    PALAdminConstants.RULE_NAMES);
-            List<String> values = getInitParameterList(portletConfig,
-                    PALAdminConstants.RULE_VALUES);
-            Map<String, String> rules = new HashMap<String, String>();
-            for (int ix = 0; ix < ((names.size() < values.size()) ? names
-                    .size() : values.size()); ix++)
-            {
-                rules.put(names.get(ix), values.get(ix));
-            }
-            userRegistrationParams.put(PALAdminConstants.RULES, rules);
-
-            String templateLocation = portletConfig
-                    .getInitParameter(PALAdminConstants.EMAIL_TEMPLATE_LOCATION);
-            if (templateLocation == null)
-            {
-                templateLocation = PALAdminConstants.DEFAULT_TEMPLATE_LOCATION;
-            }
-            templateLocation = portletContext.getRealPath(templateLocation);
-            userRegistrationParams
-                    .put(PALAdminConstants.EMAIL_TEMPLATE_LOCATION,
-                            templateLocation);
-
-            String templateName = portletConfig
-                    .getInitParameter(PALAdminConstants.EMAIL_TEMPLATE_NAME);
-            if (templateName == null)
-            {
-                templateName = PALAdminConstants.DEFAULT_TEMPLATE_NAME;
-            }
-            userRegistrationParams.put(PALAdminConstants.EMAIL_TEMPLATE_NAME,
-                    templateName);
-
-            ArrayList<String> roots = new ArrayList<String>(1);
-            roots.add(templateLocation);
-
-            try
-            {
-                JetspeedTemplateLocator templateLocator = new JetspeedTemplateLocator(
-                        roots, "email", portletContext.getRealPath("/"));
-                templateLocator.start();
-                userRegistrationParams.put(PALAdminConstants.TEMPLATE_LOCATOR,
-                        templateLocator);
-            }
-            catch (FileNotFoundException e)
-            {
-                throw new PortletException(
-                        "Could not start the template locator.", e);
-            }
-
-            // user attributes ?
-
-            Boolean forceGeneratedPasswords = Boolean
-                    .valueOf(
-                            portletConfig
-                                    .getInitParameter(PALAdminConstants.FORCE_GENERATED_PASSWORD))
-                    .booleanValue();
-            userRegistrationParams.put(
-                    PALAdminConstants.FORCE_GENERATED_PASSWORD,
-                    forceGeneratedPasswords);
-
-            Boolean forceEmailAsUsername = Boolean
-                    .valueOf(
-                            portletConfig
-                                    .getInitParameter(PALAdminConstants.FORCE_USE_EMAIL_AS_USERNAME))
-                    .booleanValue();
-            userRegistrationParams.put(
-                    PALAdminConstants.FORCE_USE_EMAIL_AS_USERNAME,
-                    forceEmailAsUsername);
-
-            Boolean forceEmailsToBeSystemUnique = Boolean
-                    .valueOf(
-                            portletConfig
-                                    .getInitParameter(PALAdminConstants.FORCE_UNIQUE_EMAIL))
-                    .booleanValue();
-            if (forceEmailAsUsername)
-            {
-                // just to be sure
-                forceEmailsToBeSystemUnique = Boolean.TRUE;
-            }
-            userRegistrationParams.put(PALAdminConstants.FORCE_UNIQUE_EMAIL,
-                    forceEmailsToBeSystemUnique);
-
-            Boolean sendMail = Boolean.valueOf(portletConfig
-                    .getInitParameter(PALAdminConstants.SEND_MAIL));
-            userRegistrationParams.put(PALAdminConstants.SEND_MAIL, sendMail);
+        // rules (name,value pairs)
+        List<String> names = getInitParameterList(portletConfig,
+                PALAdminConstants.RULE_NAMES);
+        List<String> values = getInitParameterList(portletConfig,
+                PALAdminConstants.RULE_VALUES);
+        Map<String, String> rules = new HashMap<String, String>();
+        for (int ix = 0; ix < ((names.size() < values.size()) ? names.size()
+                : values.size()); ix++)
+        {
+            rules.put(names.get(ix), values.get(ix));
         }
-    }
+        getUserRegistrationParams().put(PALAdminConstants.RULES, rules);
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.apache.portals.bridges.portletfilter.PortletFilter#processActionFilter(javax.portlet.ActionRequest,
-     *      javax.portlet.ActionResponse,
-     *      org.apache.portals.bridges.portletfilter.PortletFilterChain)
-     */
-    public void processActionFilter(ActionRequest request,
-            ActionResponse response, PortletFilterChain chain)
-            throws PortletException, IOException
-    {
-        request.setAttribute(PALAdminConstants.PORTAL_ADMINISTRATION_COMPONENT,
-                portalAdministration);
-        request.setAttribute(PALAdminConstants.USER_MANAGER_COMPONENT,
-                userManager);
-        request.setAttribute(PALAdminConstants.USER_REGISTRATION_PARAMS,
-                userRegistrationParams);
+        // user attributes ?
 
-        chain.processActionFilter(request, response);
-    }
+        Boolean forceGeneratedPasswords = Boolean
+                .valueOf(
+                        portletConfig
+                                .getInitParameter(PALAdminConstants.FORCE_GENERATED_PASSWORD))
+                .booleanValue();
+        getUserRegistrationParams().put(
+                PALAdminConstants.FORCE_GENERATED_PASSWORD,
+                forceGeneratedPasswords);
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.apache.portals.bridges.portletfilter.PortletFilter#renderFilter(javax.portlet.RenderRequest,
-     *      javax.portlet.RenderResponse,
-     *      org.apache.portals.bridges.portletfilter.PortletFilterChain)
-     */
-    public void renderFilter(RenderRequest request, RenderResponse response,
-            PortletFilterChain chain) throws PortletException, IOException
-    {
-        request.setAttribute(PALAdminConstants.PORTAL_ADMINISTRATION_COMPONENT,
-                portalAdministration);
-        request.setAttribute(PALAdminConstants.USER_MANAGER_COMPONENT,
-                userManager);
-        request.setAttribute(PALAdminConstants.USER_REGISTRATION_PARAMS,
-                userRegistrationParams);
+        Boolean forceEmailAsUsername = Boolean
+                .valueOf(
+                        portletConfig
+                                .getInitParameter(PALAdminConstants.FORCE_USE_EMAIL_AS_USERNAME))
+                .booleanValue();
+        getUserRegistrationParams().put(
+                PALAdminConstants.FORCE_USE_EMAIL_AS_USERNAME,
+                forceEmailAsUsername);
 
-        chain.renderFilter(request, response);
-    }
-
-    protected List<String> getInitParameterList(PortletConfig portletConfig,
-            String ipName)
-    {
-        String temp = portletConfig.getInitParameter(ipName);
-        if (temp == null)
+        Boolean forceEmailsToBeSystemUnique = Boolean
+                .valueOf(
+                        portletConfig
+                                .getInitParameter(PALAdminConstants.FORCE_UNIQUE_EMAIL))
+                .booleanValue();
+        if (forceEmailAsUsername)
         {
-            return new ArrayList<String>();
+            // just to be sure
+            forceEmailsToBeSystemUnique = Boolean.TRUE;
         }
+        getUserRegistrationParams().put(PALAdminConstants.FORCE_UNIQUE_EMAIL,
+                forceEmailsToBeSystemUnique);
 
-        String[] temps = temp.split("\\,");
-        for (int ix = 0; ix < temps.length; ix++)
-        {
-            temps[ix] = temps[ix].trim();
-        }
-
-        return Arrays.asList(temps);
+        Boolean sendMail = Boolean.valueOf(portletConfig
+                .getInitParameter(PALAdminConstants.SEND_MAIL));
+        getUserRegistrationParams().put(PALAdminConstants.SEND_MAIL, sendMail);
     }
 }

Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserRegistrationService.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserRegistrationService.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserRegistrationService.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,16 +1,25 @@
 package jp.sf.pal.admin.service;
 
 import java.io.Serializable;
+import java.security.Principal;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
 
 import javax.faces.context.FacesContext;
 import javax.portlet.PortletConfig;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
 
 import jp.sf.pal.admin.PALAdminConstants;
 import jp.sf.pal.admin.util.PortalComponentUtil;
 import jp.sf.pal.admin.util.UserRegistrationUtil;
+import jp.sf.pal.admin.web.registration.ForgottenPasswordPage;
+import jp.sf.pal.admin.web.registration.ResetPasswordPage;
 import jp.sf.pal.admin.web.registration.UserRegistrationPage;
 import jp.sf.pal.common.CommonException;
 
@@ -22,7 +31,9 @@
 import org.apache.jetspeed.locator.TemplateDescriptor;
 import org.apache.jetspeed.locator.TemplateLocatorException;
 import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.security.SecurityException;
 import org.apache.jetspeed.security.User;
+import org.apache.jetspeed.security.UserPrincipal;
 import org.seasar.teeda.extension.util.LabelHelper;
 
 public class UserRegistrationService implements Serializable
@@ -34,17 +45,19 @@
 
     private static final String PATH_SEPARATOR = "/";
 
-    private static final String RB_EMAIL_SUBJECT = "email.subject.registration";
+    private static final String EMAIL_SUBJECT_USER_REGISTRATION = "email.subject.registration";
 
+    private static final String EMAIL_SUBJECT_FORGOTTEN_PASSWORD = "email.subject.forgotten.password";
+
+    private static final String CTX_NEW_PASSWORD = "password";
+
+    private static final String CTX_USER_NAME = "username";
+
+    private static final String CTX_RETURN_URL = "returnURL";
+
     public void register(UserRegistrationPage page) throws CommonException
     {
 
-        //        List errors = new LinkedList();
-        //
-        //        Map userAttributes = new HashMap();
-        //
-        //        Map userInfo = new HashMap();
-
         if (!UserRegistrationUtil
                 .getBoolean(PALAdminConstants.FORCE_GENERATED_PASSWORD))
         {
@@ -126,7 +139,7 @@
         }
 
         // Ok, we think we're good to go, let's create the user!
-        Map userInfo = createUserInfoMap(page);
+        Map<String, String> userInfo = createUserInfoMap(page);
 
         try
         {
@@ -169,14 +182,13 @@
 
             try
             {
-                PortalComponentUtil.getPortalAdministration()
-                        .sendEmail(
-                                (PortletConfig) page.getFacesContext()
-                                        .getExternalContext().getRequestMap()
-                                        .get("javax.portlet.PortletConfig"),
-                                page.getUserBusinessInfoOnlineEmail(),
-                                getEmailSubject(page.getLabelHelper()), templ,
-                                userInfo);
+                PortalComponentUtil.getPortalAdministration().sendEmail(
+                        (PortletConfig) page.getFacesContext()
+                                .getExternalContext().getRequestMap().get(
+                                        "javax.portlet.PortletConfig"),
+                        page.getUserBusinessInfoOnlineEmail(),
+                        getUserRegistrationEmailSubject(page.getLabelHelper()),
+                        templ, userInfo);
             }
             catch (AdministrationEmailException e)
             {
@@ -188,6 +200,117 @@
 
     }
 
+    public void sendNewPassword(ForgottenPasswordPage page)
+            throws CommonException
+    {
+
+        User user = null;
+        try
+        {
+            user = PortalComponentUtil.getPortalAdministration()
+                    .lookupUserFromEmail(page.getEmail());
+        }
+        catch (Exception e)
+        {
+            throw new CommonException("forgotten.email_address_not_found",
+                    "The email is not found..", e);
+        }
+
+        String userName = getUserName(user);
+
+        String newPassword = PortalComponentUtil.getPortalAdministration()
+                .generatePassword();
+
+        Map<String, String> userAttributes = new HashMap<String, String>();
+        try
+        {
+            Preferences pref = user.getUserAttributes();
+            String[] keys = pref.keys();
+            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], ""));
+                }
+            }
+        }
+        catch (BackingStoreException e)
+        {
+            throw new CommonException("failed_to_send",
+                    "Could not access preferences. ", e);
+        }
+
+        String urlGUID = makeGUID(userName, newPassword);
+
+        // special attributes
+        userAttributes.put(CTX_RETURN_URL, generateReturnURL(page
+                .getFacesContext(), urlGUID));
+        userAttributes.put(CTX_NEW_PASSWORD, newPassword);
+        userAttributes.put(CTX_USER_NAME, userName);
+
+        String templ = getTemplatePath(page.getFacesContext());
+
+        if (templ == null)
+        {
+            throw new CommonException("failed_to_send",
+                    "Email template is not available.");
+        }
+
+        try
+        {
+            PortalComponentUtil.getPortalAdministration()
+                    .sendEmail(
+                            (PortletConfig) page.getFacesContext()
+                                    .getExternalContext().getRequestMap().get(
+                                            "javax.portlet.PortletConfig"),
+                            page.getEmail(),
+                            getForgottenPasswordEmailSubject(page
+                                    .getLabelHelper()), templ, userAttributes);
+        }
+        catch (AdministrationEmailException e)
+        {
+            throw new CommonException("failed_to_send",
+                    "Could not send a mail.", e);
+        }
+
+        //TODO this is currently hacked with a hashmap... needs to move to either a DB table
+        // or to some sort of credential
+        Map<String, String> map = new HashMap<String, String>();
+        map.put("user.name", userName);
+        map.put("password", newPassword);
+        PortalComponentUtil.getPortalAdministration().putNewLoginInfo(urlGUID,
+                map);
+
+    }
+
+    public void updatePassword(ResetPasswordPage page) throws CommonException
+    {
+        Map map = PortalComponentUtil.getPortalAdministration()
+                .getNewLoginInfo(page.getGuid());
+
+        String userName = (String) map.get("user.name");
+        String newPassword = (String) map.get("password");
+
+        // Here's where a break should be.   The following code should be put into the RETURN portlet
+        try
+        {
+            PortalComponentUtil.getUserManager().setPassword(userName, null,
+                    newPassword);
+            PortalComponentUtil.getUserManager().setPasswordUpdateRequired(
+                    userName, true);
+        }
+        catch (SecurityException e)
+        {
+            throw new CommonException("forgotten.unable_to_update_pw",
+                    "Could not update a password.", e);
+        }
+        // if we got here stuff is changed... removed the key from the map
+        PortalComponentUtil.getPortalAdministration().removeNewLoginInfo(
+                page.getGuid());
+    }
+
     protected String getTemplatePath(FacesContext facesContext)
     {
         JetspeedTemplateLocator templateLocator = UserRegistrationUtil
@@ -225,14 +348,67 @@
         }
     }
 
-    protected String getEmailSubject(LabelHelper labelHelper)
+    protected String getUserRegistrationEmailSubject(LabelHelper labelHelper)
     {
-        String emailSubject = labelHelper.getLabelValue(RB_EMAIL_SUBJECT);
+        String emailSubject = labelHelper
+                .getLabelValue(EMAIL_SUBJECT_USER_REGISTRATION);
         if (emailSubject == null)
             emailSubject = "Registration Confirmation";
         return emailSubject;
     }
 
+    protected String getForgottenPasswordEmailSubject(LabelHelper labelHelper)
+    {
+        String emailSubject = labelHelper
+                .getLabelValue(EMAIL_SUBJECT_FORGOTTEN_PASSWORD);
+        if (emailSubject == null)
+            emailSubject = "Password Notification";
+        return emailSubject;
+
+    }
+
+    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 makeGUID(String user, String newpw)
+    {
+        // This is a quicky version
+        long num = (long) user.hashCode() + (long) newpw.hashCode(); //  Possible collisions here...
+        long d = new Date().getTime();
+        long val = num * d;
+        String retval = Long.toHexString(val);
+        return retval;
+    }
+
+    protected String generateReturnURL(FacesContext facesContext, String urlGUID)
+    {
+        String fullPath = UserRegistrationUtil
+                .getString(PALAdminConstants.RETURN_PATH)
+                + "?guid=" + urlGUID;
+        // NOTE: getPortalURL will encode the fullPath for us
+        String url = PortalComponentUtil.getPortalAdministration()
+                .getPortalURL(
+                        (PortletRequest) facesContext.getExternalContext()
+                                .getRequest(),
+                        (PortletResponse) facesContext.getExternalContext()
+                                .getResponse(), fullPath);
+        return url;
+    }
+
     protected Map<String, String> createUserInfoMap(UserRegistrationPage page)
     {
         Map<String, String> userInfo = new HashMap<String, String>();

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ForgottenPasswordPage.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ForgottenPasswordPage.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ForgottenPasswordPage.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,152 @@
+package jp.sf.pal.admin.web.registration;
+
+import java.io.Serializable;
+
+import javax.faces.context.FacesContext;
+import javax.faces.internal.FacesMessageUtil;
+
+import jp.sf.pal.admin.service.UserRegistrationService;
+import jp.sf.pal.common.CommonException;
+
+import org.seasar.framework.log.Logger;
+import org.seasar.teeda.extension.annotation.takeover.TakeOver;
+import org.seasar.teeda.extension.annotation.takeover.TakeOverType;
+import org.seasar.teeda.extension.annotation.validator.Required;
+import org.seasar.teeda.extension.util.LabelHelper;
+
+public class ForgottenPasswordPage implements Serializable
+{
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -4345312306321998608L;
+
+    /**
+     * Logger for this class
+     */
+    private static final Logger logger = Logger
+            .getLogger(ForgottenPasswordPage.class);
+
+    private FacesContext facesContext;
+
+    private LabelHelper labelHelper;
+
+    private UserRegistrationService userRegistrationService;
+
+    //TODO mail validator
+    @Required
+    private String email;
+
+    private String guid;
+
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    /**
+     * @return the guid
+     */
+    public String getGuid()
+    {
+        return guid;
+    }
+
+    /**
+     * @param guid the guid to set
+     */
+    public void setGuid(String guid)
+    {
+        this.guid = guid;
+    }
+
+    /**
+     * @return the facesContext
+     */
+    public FacesContext getFacesContext()
+    {
+        return facesContext;
+    }
+
+    /**
+     * @param facesContext the facesContext to set
+     */
+    public void setFacesContext(FacesContext facesContext)
+    {
+        this.facesContext = facesContext;
+    }
+
+    /**
+     * @return the labelHelper
+     */
+    public LabelHelper getLabelHelper()
+    {
+        return labelHelper;
+    }
+
+    /**
+     * @param labelHelper the labelHelper to set
+     */
+    public void setLabelHelper(LabelHelper labelHelper)
+    {
+        this.labelHelper = labelHelper;
+    }
+
+    /**
+     * @return the userRegistrationService
+     */
+    public UserRegistrationService getUserRegistrationService()
+    {
+        return userRegistrationService;
+    }
+
+    /**
+     * @param userRegistrationService the userRegistrationService to set
+     */
+    public void setUserRegistrationService(
+            UserRegistrationService userRegistrationService)
+    {
+        this.userRegistrationService = userRegistrationService;
+    }
+
+    public String initialize()
+    {
+        return null;
+    }
+
+    public Class prerender()
+    {
+        //TODO Teeda problem: ExternalContext is released after calling action..
+        setGuid((String) FacesContext.getCurrentInstance().getExternalContext()
+                .getRequestParameterMap().get("guid"));
+        if (getGuid() != null)
+        {
+            return ResetPasswordPage.class;
+        }
+        return null;
+    }
+
+    @TakeOver(type = TakeOverType.NEVER)
+    public String doFinish()
+    {
+        try
+        {
+            getUserRegistrationService().sendNewPassword(this);
+            FacesMessageUtil.addInfoMessage("an_email_has_been_sent");
+        }
+        catch (CommonException e)
+        {
+            FacesMessageUtil.addErrorMessage(e.getMessageId());
+            logger.log("EPA0002", new Object[] { this.toString() }, e);
+
+        }
+
+        return null;
+    }
+
+}


Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ForgottenPasswordPage.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ResetPasswordPage.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ResetPasswordPage.java	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ResetPasswordPage.java	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,92 @@
+package jp.sf.pal.admin.web.registration;
+
+import javax.faces.internal.FacesMessageUtil;
+
+import jp.sf.pal.admin.service.UserRegistrationService;
+import jp.sf.pal.common.CommonException;
+
+import org.seasar.framework.log.Logger;
+import org.seasar.teeda.extension.util.LabelHelper;
+
+public class ResetPasswordPage
+{
+    /**
+     * Logger for this class
+     */
+    private static final Logger logger = Logger
+            .getLogger(ResetPasswordPage.class);
+
+    private String guid;
+
+    private LabelHelper labelHelper;
+
+    private UserRegistrationService userRegistrationService;
+
+    public String getGuid()
+    {
+        return guid;
+    }
+
+    public void setGuid(String guid)
+    {
+        this.guid = guid;
+    }
+
+    /**
+     * @return the labelHelper
+     */
+    public LabelHelper getLabelHelper()
+    {
+        return labelHelper;
+    }
+
+    /**
+     * @param labelHelper the labelHelper to set
+     */
+    public void setLabelHelper(LabelHelper labelHelper)
+    {
+        this.labelHelper = labelHelper;
+    }
+
+    /**
+     * @return the userRegistrationService
+     */
+    public UserRegistrationService getUserRegistrationService()
+    {
+        return userRegistrationService;
+    }
+
+    /**
+     * @param userRegistrationService the userRegistrationService to set
+     */
+    public void setUserRegistrationService(
+            UserRegistrationService userRegistrationService)
+    {
+        this.userRegistrationService = userRegistrationService;
+    }
+
+    public String initialize()
+    {
+        return null;
+    }
+
+    public String prerender()
+    {
+        if (getGuid() != null)
+        {
+            try
+            {
+                getUserRegistrationService().updatePassword(this);
+                FacesMessageUtil
+                        .addInfoMessage("forgotten.successful_pw_update");
+            }
+            catch (CommonException e)
+            {
+                FacesMessageUtil.addErrorMessage(e.getMessageId());
+                logger.log("EPA0003", new Object[] { this.toString() }, e);
+            }
+        }
+        return null;
+    }
+
+}


Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/ResetPasswordPage.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: pal-admin/trunk/src/main/resources/PAMessages.properties
===================================================================
--- pal-admin/trunk/src/main/resources/PAMessages.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/PAMessages.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -1 +1,3 @@
-EPA0001=Could not register a user.
\ No newline at end of file
+EPA0001=Could not register a user.
+EPA0002=Could not send a forgotten password mail.
+EPA0003=Could not update a password.

Modified: pal-admin/trunk/src/main/resources/appMessages.properties
===================================================================
--- pal-admin/trunk/src/main/resources/appMessages.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/appMessages.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -72,3 +72,11 @@
 success.login_above=You have completed the user registration process.  Please login above.
 success.check_your_email= You have completed the user registration process.  An email containing your username and password has been sent to you.
 error.registration_completed_but_could_not_send=You have completed the user registration process. But a system could not send a registration mail to you. Please contact a site administrator.
+
+forgotten.email_address_not_found=Sorry but we could not find this email address on file. Please check your email address.
+failed_to_send=Failed to send password. Please contact a site administrator if you see this message again.
+an_email_has_been_sent=An email has been sent to you. Please change your password after logging in to portal with a new password in the mail.
+forgotten.successful_pw_update = Your password has been updated!  Please login using it!
+forgotten.unable_to_update_pw=Failed to update your password, try again please. If you see this error message again, please contact a site administrator.
+
+

Modified: pal-admin/trunk/src/main/resources/appMessages_ja.properties
===================================================================
--- pal-admin/trunk/src/main/resources/appMessages_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/appMessages_ja.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -7,3 +7,8 @@
 success.check_your_email= \u30e6\u30fc\u30b6\u30fc\u767b\u9332\u30d7\u30ed\u30bb\u30b9\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u542b\u307e\u308c\u308b\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002
 error.registration_completed_but_could_not_send=\u30e6\u30fc\u30b6\u30fc\u767b\u9332\u30d7\u30ed\u30bb\u30b9\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u767b\u9332\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002
 
+forgotten.email_address_not_found=\u767b\u9332\u3055\u308c\u3066\u3044\u308b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u898b\u3064\u3051\u3089\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u5165\u529b\u3057\u305f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u6b63\u3057\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+failed_to_send=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u9001\u4fe1\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u3001\u3053\u306e\u554f\u984c\u304c\u8d77\u304d\u308b\u5834\u5408\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002
+an_email_has_been_sent=\u30e1\u30fc\u30eb\u3092\u9001\u4fe1\u3057\u307e\u3057\u305f\u3002\u518d\u767a\u884c\u3055\u308c\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ed\u30b0\u30a4\u30f3\u5f8c\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+forgotten.successful_pw_update = \u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002\u305d\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30ed\u30b0\u30a4\u30f3\u5f8c\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+forgotten.unable_to_update_pw=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u66f4\u65b0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3057\u3070\u3089\u304f\u305f\u3063\u3066\u304b\u3089\u3001\u518d\u5ea6\u3001\u8a66\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u518d\u5ea6\u3001\u30a8\u30e9\u30fc\u304c\u8d77\u304d\u308b\u5834\u5408\u306f\u3001\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002

Added: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword.properties
===================================================================


Property changes on: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword_ja.properties
===================================================================
--- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword_ja.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,5 @@
+# portlet info
+javax.portlet.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u518d\u767a\u884c
+javax.portlet.short-title=\u518d\u767a\u884c
+javax.portlet.keywords=\u30d1\u30b9\u30ef\u30fc\u30c9,\u767b\u9332,\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7,\u65b0\u898f\u30e6\u30fc\u30b6\u30fc
+


Property changes on: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/ForgottenPassword_ja.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration.properties
===================================================================


Property changes on: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration_ja.properties
===================================================================
--- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration_ja.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,5 @@
+# portlet info
+javax.portlet.title=\u30e6\u30fc\u30b6\u30fc\u767b\u9332
+javax.portlet.short-title=\u30e6\u30fc\u30b6\u30fc\u767b\u9332
+javax.portlet.keywords=\u30d1\u30b9\u30ef\u30fc\u30c9,\u767b\u9332,\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7,\u65b0\u898f\u30e6\u30fc\u30b6\u30fc
+


Property changes on: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/UserRegistration_ja.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label.properties
===================================================================
--- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -72,4 +72,7 @@
 verifyPassword=Verify Password
 email=Email
 
-email.subject.registration=Registration Confirmation
\ No newline at end of file
+pageMessage=If you have forgotten your password, we can create a new one and send it to you via your email address. You must enter the exact same email address with which you originally registered.
+
+email.subject.registration=Registration Confirmation For Portal Account
+email.subject.forgotten.password=Password Notification For Portal Account

Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label_ja.properties
===================================================================
--- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label_ja.properties	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,8 +1,3 @@
-# portlet info
-javax.portlet.title=\u30e6\u30fc\u30b6\u30fc\u767b\u9332
-javax.portlet.short-title=\u30e6\u30fc\u30b6\u30fc\u767b\u9332
-javax.portlet.keywords=\u30d1\u30b9\u30ef\u30fc\u30c9,\u767b\u9332,\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7,\u65b0\u898f\u30e6\u30fc\u30b6\u30fc
-
 userName= \u30e6\u30fc\u30b6\u30fc\u540d
 userBdate= \u8a95\u751f\u65e5
 userGender= \u6027\u5225
@@ -77,4 +72,7 @@
 verifyPassword=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u518d\u5165\u529b
 email=\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9
 
-email.subject.registration=\u767b\u9332\u306e\u78ba\u8a8d
+pageMessage=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u304a\u5fd8\u308c\u306e\u65b9\u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3078\u65b0\u898f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u9001\u4fe1\u3057\u307e\u3059\u3002\u767b\u9332\u3057\u305f\u6b63\u78ba\u306a\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+email.subject.registration=\u30dd\u30fc\u30bf\u30eb\u30a2\u30ab\u30a6\u30f3\u30c8\u767b\u9332\u306e\u78ba\u8a8d
+email.subject.forgotten.password=\u30dd\u30fc\u30bf\u30eb\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u65b0\u898f\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u901a\u77e5
\ No newline at end of file

Modified: pal-admin/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml	2007-05-21 09:15:33 UTC (rev 153)
@@ -15,40 +15,43 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-<portlet-app id="j2-admin" version="1.0"
-    xmlns="http://portals.apache.org/jetspeed"
-    xmlns:js="http://portals.apache.org/jetspeed"
-    xmlns:dc="http://www.purl.org/dc"
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/jetspeed-portlet.xsd">
-
-   <js:security-constraint-ref>admin</js:security-constraint-ref>
- 
-    <dc:title>PAL Portal Administration Portlets</dc:title>
-    <dc:title xml:lang="ja">PAL Portal 管理ポートレット</dc:title>
-    <dc:creator>PAL Team</dc:creator>
- 
-	<js:services>        
-        <js:service name='SecurityProvider'/>     
-        <js:service name='UserManager'/>     
-        <js:service name='GroupManager'/>    
-        <js:service name='RoleManager'/>
-        <js:service name='ApplicationServerManager'/>
-        <js:service name='DeploymentManager'/>
-		<js:service name='EntityAccessor'/>
-        <js:service name='PageManager'/>    
-        <js:service name='PermissionManager'/>        
-        <js:service name='PortalAdministration'/>        
-        <js:service name='PortletFactory'/>        
-        <js:service name='PortalAdministration'/>
-        <js:service name='PortletRegistryComponent'/>
-        <js:service name='PortalStatistics'/>        
-        <js:service name="Profiler" />         
-	    <js:service name='SearchComponent'/>                
-        <js:service name="SSO" />                 
-        <js:service name='DecorationFactory'/> 
-        <js:service name='SecurityAccessController'/>  
-        <js:service name='PortletTrackingManager'/>     
-	</js:services>
-
+<portlet-app xmlns="http://portals.apache.org/jetspeed" xmlns:js="http://portals.apache.org/jetspeed" xmlns:dc="http://www.purl.org/dc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="j2-admin" version="1.0" xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/jetspeed-portlet.xsd">
+  <js:security-constraint-ref>admin</js:security-constraint-ref>
+  <dc:title>PAL Portal Administration Portlets</dc:title>
+  <dc:title xml:lang="ja">PAL Portal 管理ポートレット</dc:title>
+  <dc:creator>PAL Team</dc:creator>
+  <portlet>
+    <portlet-name>ForgottenPasswordPortlet</portlet-name>
+    <js:security-constraint-ref>public-view</js:security-constraint-ref>
+    <js:metadata name="merge.portal.parameters.with.portlet.parameters">true</js:metadata>
+    <js:metadata name="merge.portal.parameters.before.portlet.parameters">true</js:metadata>
+  </portlet>
+  <portlet>
+    <portlet-name>UserRegistrationPortlet</portlet-name>
+    <js:security-constraint-ref>public-view</js:security-constraint-ref>
+    <js:metadata name="merge.portal.parameters.with.portlet.parameters">true</js:metadata>
+    <js:metadata name="merge.portal.parameters.before.portlet.parameters">true</js:metadata>
+  </portlet>
+  <js:services>
+    <js:service name="SecurityProvider"/>
+    <js:service name="UserManager"/>
+    <js:service name="GroupManager"/>
+    <js:service name="RoleManager"/>
+    <js:service name="ApplicationServerManager"/>
+    <js:service name="DeploymentManager"/>
+    <js:service name="EntityAccessor"/>
+    <js:service name="PageManager"/>
+    <js:service name="PermissionManager"/>
+    <js:service name="PortalAdministration"/>
+    <js:service name="PortletFactory"/>
+    <js:service name="PortalAdministration"/>
+    <js:service name="PortletRegistryComponent"/>
+    <js:service name="PortalStatistics"/>
+    <js:service name="Profiler"/>
+    <js:service name="SearchComponent"/>
+    <js:service name="SSO"/>
+    <js:service name="DecorationFactory"/>
+    <js:service name="SecurityAccessController"/>
+    <js:service name="PortletTrackingManager"/>
+  </js:services>
 </portlet-app>

Modified: pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml	2007-05-21 09:15:33 UTC (rev 153)
@@ -111,7 +111,7 @@
     <init-param>
       <description>This option will generate a new password for each user registration</description>
       <name>jp.sf.pal.admin.ForceGeneratedPassword</name>
-      <value>false</value>
+      <value>true</value>
     </init-param>
     <init-param>
       <description>This option will force email address to be system wide unique</description>
@@ -148,18 +148,65 @@
       <name>jp.sf.pal.admin.SendMail</name>
       <value>true</value>
     </init-param>
-    <expiration-cache>-1</expiration-cache>
+    <expiration-cache>0</expiration-cache>
     <supports>
       <mime-type>text/html</mime-type>
       <portlet-mode>VIEW</portlet-mode>
     </supports>
     <supported-locale>en</supported-locale>
     <supported-locale>ja</supported-locale>
-    <resource-bundle>jp.sf.pal.admin.web.registration.label</resource-bundle>
+    <resource-bundle>jp.sf.pal.admin.web.registration.UserRegistration</resource-bundle>
     <portlet-info>
       <title>User Registration</title>
       <short-title>Registration</short-title>
       <keywords>Registration</keywords>
     </portlet-info>
   </portlet>
+  <portlet>
+    <description>Provides users with the ability to request a new password to be sent to their email address.</description>
+    <description xml:lang="ja">ユーザーに新規パスワードをメールアドレスに送信要求をする機能を提供します。</description>
+    <portlet-name>ForgottenPasswordPortlet</portlet-name>
+    <display-name>Forgotten Password</display-name>
+    <display-name xml:lang="ja">パスワード再発行ポートレット</display-name>
+    <portlet-class>org.apache.portals.bridges.portletfilter.FilterPortlet</portlet-class>
+    <init-param>
+      <name>portlet-class</name>
+      <value>org.seasar.teeda.core.portlet.FacesPortlet</value>
+    </init-param>
+    <init-param>
+      <name>portlet-filters</name>
+      <value>jp.sf.pal.admin.filter.ForgottenPasswordFilter,jp.sf.pal.facesresponse.FacesResponseFilter,jp.sf.pal.pooptimizer.OptimizerFilter,org.seasar.portlet.filter.S2PortletFilter,org.seasar.portlet.filter.HotdeployPortletFilter</value>
+    </init-param>
+    <init-param>
+      <name>view-page</name>
+      <value>/view/registration/forgottenPassword.html</value>
+    </init-param>
+    <init-param>
+      <description>This is the template in which you setup an email to be sent after user exists</description>
+      <name>jp.sf.pal.admin.EmailTemplateLocation</name>
+      <value>/WEB-INF/template/userreg/</value>
+    </init-param>
+    <init-param>
+      <description>This is the template in which you setup an email to be sent after user exists</description>
+      <name>jp.sf.pal.admin.EmailTemplateName</name>
+      <value>forgottenPasswdEmail.vm</value>
+    </init-param>
+    <init-param>
+      <name>jp.sf.pal.admin.ReturnPath</name>
+      <value>/forgot.psml</value>
+    </init-param>
+    <expiration-cache>0</expiration-cache>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <supported-locale>ja</supported-locale>
+    <resource-bundle>jp.sf.pal.admin.web.registration.ForgottenPassword</resource-bundle>
+    <portlet-info>
+      <title>Forgotten Password</title>
+      <short-title>Forgotten Password</short-title>
+      <keywords>tools,users,password,forgotten,lost,passwd</keywords>
+    </portlet-info>
+  </portlet>
 </portlet-app>

Modified: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/forgottenPasswdEmail.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/forgottenPasswdEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/forgottenPasswdEmail.vm	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,9 +1,17 @@
 Hello  $!{map.get("user.name.given")} $!{map.get("user.name.family")}:
 
 You have requested a new password for your account. 
+
 The account username: $!{map.get("username")}
 The new password is : $!{map.get("password")}
 
+To activate the new password you MUST click on the following link:
+$!{map.get("returnURL")}
+If you have received this email in error, and do NOT want to update your password,
+please do NOT click on the link above, and your account will remain using your
+original password.
+
+
 Thanks,  
 
 ---

Modified: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/forgottenPasswdEmail.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/forgottenPasswdEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/forgottenPasswdEmail.vm	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,9 +1,18 @@
 こんにちは、$!{map.get("user.name.family")} $!{map.get("user.name.given")} さん
 
 ご利用のアカウントに関する新規パスワード作成依頼を受け付けました。
+
 アカウントユーザー名: $!{map.get("username")}
 新規パスワード: $!{map.get("password")}
 
+新規パスワードを有効にするためには、以下のリンクをクリックしてください。
+
+$!{map.get("returnURL")}
+
+もし、謝ってこのメールを受け取った場合や、パスワードを更新したくない場合は、
+上のリンクをクリックしないでください。クリックしなければ、ご利用のアカウントで
+現在のパスワードが保持されます。
+
 以上をよろしくお願いいたします。
 
 ---

Deleted: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,40 +0,0 @@
-#*
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
-*#
-#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
-
-<div id="ForgottenPassword"  class="portlet-section-text"> 
-	#if($updatedPWMsg)
-		<table>
-			<tr><td colspan="2" ><p class="portlet-msg-success">$updatedPWMsg</p></td></tr>
-		</table>
-	#else	
-		<form name="forgottenPasswordForm" action="$renderResponse.createActionURL()" method="post" >
-		<table>
-			<tr><td colspan="2" >
-				$MESSAGES.getString('page.message') 
-				#if($MSG )
-		 			<br>
-		 			<p class="portlet-msg-error">$!MSG</p>
-		 		#end
-			</td></tr>
-			
-			<tr><td>$MESSAGES.getString('page.email')</td><td><input type="text" name="email" value="$!email" /></td></tr>
-			<tr><td colspan="2" > <input type="submit" value="$MESSAGES.getString('page.button')"  name="Request New Password" /> </td></tr>
-		</table>
-	    </form>
-    #end
-</div>

Deleted: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm	2007-05-21 09:15:33 UTC (rev 153)
@@ -1,61 +0,0 @@
-#*
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
-*#
-#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
-#set ($refreshLink = $renderResponse.createRenderURL())
-$refreshLink.setParameter("reset", "true")
-<div id="UserRegistration"  class="portlet-section-text"> 
-	#if($registeredUserMsg)
-		<table >
-			<tr><td colspan="2" ><p class="portlet-msg-success" >$registeredUserMsg</p></td></tr>
-			<tr><td colspan="2" ><p class="portlet-msg-success"><a href="$refreshLink">Click here to start registration...</a></p></td></tr>
-		</table>
-	#else
-	<form name="userRegistrationForm" action="$renderResponse.createActionURL()" method="post" >
-	<table>
-		<tr><td colspan="2" > 
-			$MESSAGES.getString('page.welcome')
-			#if($MSG )
-	 			<p class="portlet-msg-error">$!MSG</p>
-	 		#end	
-		</td></tr>
-		
-		#if($CTX_Option_Use_Email_As_Username)
-		#else
-		<tr><td>$MESSAGES.getString('page.username')</td><td><input type="text" name="user.name" value="$!{user.get("user.name")}" /></td></tr>
-		#end
-		<tr><td>$MESSAGES.getString('page.email.address')</td><td><input type="text" name="user.business-info.online.email" value="$!{user.get("user.business-info.online.email")}" /></td></tr>
-		
-		#if($CTX_Option_Generate_Passwords)
-		#else
-		<tr><td>$MESSAGES.getString('page.password')</td><td><input type="password" name="password" value="" /></td></tr>
-		<tr><td>$MESSAGES.getString('page.passwordVerify')</td><td><input type="password" name="verifyPassword" value="" /></td></tr>
-		#end
-		
-		#foreach( $fieldName in $fieldsInOrder )
-			#set($pagestring = "page.${fieldName}") 
-			#if( $optionalMap.get($fieldName) )
-			<tr><td>${MESSAGES.getString($pagestring)} $MESSAGES.getString("page.optional")</td><td><input type="text" name="$fieldName" value="$!{user.get($fieldName)}" /></td></tr>
-			#else
-			<tr><td>${MESSAGES.getString($pagestring)}</td><td><input type="text" name="$fieldName" value="$!{user.get($fieldName)}" /></td></tr>
-			#end		
-		#end
-		
-		<tr><td colspan="2" > <input type="submit" value="$MESSAGES.getString('page.button')" name="Register Me" /> </td></tr>
-	</table>
-    </form>    
-    #end
-</div>

Added: pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html
===================================================================
--- pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <link rel="stylesheet" type="text/css" href="../../css/global.css" />
+  </head>
+  <body>
+    <form id="ForgottenPasswordForm">
+      <div>
+        <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+      </div>
+<!-- content: BEGIN -->
+      <div>
+        <label id="pageMessageLabel" class="portlet-form-label"></label>
+      </div>
+      <div>
+        <label id="emailLabel" for="email" class="portlet-form-label">email</label>
+        <input id="email" type="text" class="portlet-form-input-field" size="24" />
+        <input type="button" id="doFinish" value="Finish" onclick="location.href='forgottenPassword.html'" class="portlet-form-button" />
+        <br/>
+        <span id="emailMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+      </div>
+<!-- content: END -->
+    </form>
+  </body>
+</html>


Property changes on: pal-admin/trunk/src/main/webapp/view/registration/forgottenPassword.html
___________________________________________________________________
Name: svn:eol-style
   + native

Added: pal-admin/trunk/src/main/webapp/view/registration/resetPassword.html
===================================================================
--- pal-admin/trunk/src/main/webapp/view/registration/resetPassword.html	2007-05-20 12:21:48 UTC (rev 152)
+++ pal-admin/trunk/src/main/webapp/view/registration/resetPassword.html	2007-05-21 09:15:33 UTC (rev 153)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <link rel="stylesheet" type="text/css" href="../../css/global.css" />
+  </head>
+  <body>
+    <form id="ForgottenPasswordForm">
+      <div>
+        <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+      </div>
+<!-- content: BEGIN -->
+      <input id="guid" type="hidden"/>
+      <div>
+        <a id="goForgottenPassword" href="forgottenPassword.html"><span id="goToForgottenPasswordLabel">Back</span></a>
+      </div>
+<!-- content: END -->
+    </form>
+  </body>
+</html>


Property changes on: pal-admin/trunk/src/main/webapp/view/registration/resetPassword.html
___________________________________________________________________
Name: svn:eol-style
   + native


pal-cvs メーリングリストの案内