[pal-cvs 2420] [152] added User Registration Portlet.

svnno****@sourc***** svnno****@sourc*****
2007年 5月 20日 (日) 21:21:49 JST


Revision: 152
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=152
Author:   shinsuke
Date:     2007-05-20 21:21:48 +0900 (Sun, 20 May 2007)

Log Message:
-----------
added User Registration Portlet.

Modified Paths:
--------------
    pal-admin/trunk/.classpath
    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/util/PALAdminUtil.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PortalComponentUtil.java
    pal-admin/trunk/src/main/resources/appMessages.properties
    pal-admin/trunk/src/main/resources/appMessages_ja.properties
    pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml

Added Paths:
-----------
    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/java/jp/sf/pal/admin/util/UserRegistrationUtil.java
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/
    pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/UserRegistrationPage.java
    pal-admin/trunk/src/main/resources/PAMessages.properties
    pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/
    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/template/
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/
    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/
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/
    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/userRegistrationEmail.vm
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm
    pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm
    pal-admin/trunk/src/main/webapp/view/registration/
    pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html


-------------- next part --------------
Modified: pal-admin/trunk/.classpath
===================================================================
--- pal-admin/trunk/.classpath	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/.classpath	2007-05-20 12:21:48 UTC (rev 152)
@@ -6,11 +6,10 @@
 
   <classpathentry kind="var" path="M2_REPO/org/apache/pluto/pluto/1.0.1/pluto-1.0.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-core/1.0.7-SNAPSHOT/teeda-core-1.0.7-SNAPSHOT.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-core/1.0.7-SNAPSHOT/teeda-core-1.0.7-SNAPSHOT-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/portlet-api/portlet-api/1.0/portlet-api-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-locator/2.2-dev_pal-1.0-beta5-dev/jetspeed-locator-2.2-dev_pal-1.0-beta5-dev.jar"/>
   <classpathentry kind="var" path="M2_REPO/poi/poi/2.5.1-final-20040804/poi-2.5.1-final-20040804.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-ajax/1.0.7-SNAPSHOT/teeda-ajax-1.0.7-SNAPSHOT.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-ajax/1.0.7-SNAPSHOT/teeda-ajax-1.0.7-SNAPSHOT-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar" sourcepath="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar" sourcepath="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13-sources.jar"/>
@@ -18,27 +17,30 @@
   <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.2/junit-3.8.2.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-tiger/2.4.11/s2-tiger-2.4.11.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-tiger/1.0.6/teeda-tiger-1.0.6.jar"/>
+  <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar" sourcepath="M2_REPO/oro/oro/2.0.8/oro-2.0.8-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.6/commons-digester-1.6.jar" sourcepath="M2_REPO/commons-digester/commons-digester/1.6/commons-digester-1.6-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar" sourcepath="M2_REPO/oro/oro/2.0.8/oro-2.0.8-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar" sourcepath="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jp/sf/pal/portlet-output-optimizer/0.2/portlet-output-optimizer-0.2.jar" sourcepath="M2_REPO/jp/sf/pal/portlet-output-optimizer/0.2/portlet-output-optimizer-0.2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-ajax/1.0.7-20070510/teeda-ajax-1.0.7-20070510.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-ajax/1.0.7-20070510/teeda-ajax-1.0.7-20070510-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar" sourcepath="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jp/sf/pal/faces-response-filter/0.2/faces-response-filter-0.2.jar" sourcepath="M2_REPO/jp/sf/pal/faces-response-filter/0.2/faces-response-filter-0.2-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar" sourcepath="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/myfaces/tomahawk/tomahawk/1.1.3/tomahawk-1.1.3.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1.jar" sourcepath="M2_REPO/commons-io/commons-io/1.1/commons-io-1.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jp/sf/pal/tomahawk-bridge/0.9.1/tomahawk-bridge-0.9.1.jar" sourcepath="M2_REPO/jp/sf/pal/tomahawk-bridge/0.9.1/tomahawk-bridge-0.9.1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/jboss/javassist/3.4.ga/javassist-3.4.ga.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jp/sf/pal/common-utils/0.3-SNAPSHOT/common-utils-0.3-SNAPSHOT.jar" sourcepath="M2_REPO/jp/sf/pal/common-utils/0.3-SNAPSHOT/common-utils-0.3-SNAPSHOT-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-framework/2.4.11/s2-framework-2.4.11.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar" sourcepath="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/seasar/portlet/s2-portlet/1.0.7-SNAPSHOT/s2-portlet-1.0.7-SNAPSHOT.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-extension/2.4.11/s2-extension-2.4.11.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-extension/1.0.7-SNAPSHOT/teeda-extension-1.0.7-SNAPSHOT.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-extension/1.0.7-SNAPSHOT/teeda-extension-1.0.7-SNAPSHOT-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-core/1.0.7-20070510/teeda-core-1.0.7-20070510.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-core/1.0.7-20070510/teeda-core-1.0.7-20070510-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.1.1/commons-fileupload-1.1.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/portals/bridges/portals-bridges-portletfilter/1.0.2-dev/portals-bridges-portletfilter-1.0.2-dev.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/portlet/s2-portlet/1.0.7/s2-portlet-1.0.7.jar" sourcepath="M2_REPO/org/seasar/portlet/s2-portlet/1.0.7/s2-portlet-1.0.7-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar"/>
   <classpathentry kind="var" path="M2_REPO/ognl/ognl/2.6.7/ognl-2.6.7.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-api/2.2-dev_pal-1.0-beta5-dev/jetspeed-api-2.2-dev_pal-1.0-beta5-dev.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/teeda/teeda-extension/1.0.7-20070510/teeda-extension-1.0.7-20070510.jar" sourcepath="M2_REPO/org/seasar/teeda/teeda-extension/1.0.7-20070510/teeda-extension-1.0.7-20070510-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-ejb_2.1_spec/1.0/geronimo-ejb_2.1_spec-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/commons-el/commons-el/1.0/commons-el-1.0.jar" sourcepath="M2_REPO/commons-el/commons-el/1.0/commons-el-1.0-sources.jar"/>
 </classpath>

Modified: pal-admin/trunk/pom.xml
===================================================================
--- pal-admin/trunk/pom.xml	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/pom.xml	2007-05-20 12:21:48 UTC (rev 152)
@@ -188,6 +188,11 @@
     </dependency>
     <dependency>
       <groupId>jp.sf.pal</groupId>
+      <artifactId>common-utils</artifactId>
+      <version>0.3-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>jp.sf.pal</groupId>
       <artifactId>portlet-output-optimizer</artifactId>
       <version>0.2</version>
       <type>jar</type>
@@ -246,6 +251,11 @@
 <!-- PORTLET DEV: END -->
     </dependency>
     <dependency>
+      <groupId>org.apache.portals.jetspeed-2</groupId>
+      <artifactId>jetspeed-locator</artifactId>
+      <version>2.2-dev_pal-1.0-beta5-dev</version>
+    </dependency>
+    <dependency>
       <groupId>org.apache.pluto</groupId>
       <artifactId>pluto</artifactId>
       <version>1.0.1</version>

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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/PALAdminConstants.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -27,6 +27,9 @@
     public static final String SECURITY_PROVIDER_COMPONENT = PREFIX
             + "SecurityProvider";
 
+    public static final String PORTAL_ADMINISTRATION_COMPONENT = PREFIX
+            + "PortalAdministration";
+
     public static final String USER_MANAGER_COMPONENT = PREFIX + "UserManager";
 
     public static final String ROLE_MANAGER_COMPONENT = PREFIX + "RoleManager";
@@ -97,4 +100,42 @@
     public static final String LOCAL_TEMP_FILENAME_SUFFIX = ".war";
 
     public static final String PASSWORD = PREFIX + "Password";
+
+    public static final String ROLES = PREFIX + "Roles";
+
+    public static final String GROUPS = PREFIX + "Groups";
+
+    public static final String RULES = PREFIX + "Rules";
+
+    public static final String RULE_NAMES = PREFIX + "RuleNames";
+
+    public static final String RULE_VALUES = PREFIX + "RuleValues";
+
+    public static final String EMAIL_TEMPLATE_LOCATION = PREFIX + "EmailTemplateLocation";
+
+    public static final String EMAIL_TEMPLATE_NAME = PREFIX + "EmailTemplateName";
+
+    public static final String TEMPLATE_LOCATOR = PREFIX + "TemplateLocator";
+
+    public static final String FORCE_UNIQUE_EMAIL = PREFIX + "ForceUniqueEmail";
+
+    public static final String FORCE_GENERATED_PASSWORD = PREFIX
+            + "ForceGeneratedPassword";
+
+    public static final String FORCE_USE_EMAIL_AS_USERNAME = PREFIX
+            + "ForceUseEmailAsUsername";
+
+    public static final String SEND_MAIL = PREFIX + "SendMail";
+
+    public static final String RETURN_URL = PREFIX + "ReturnUrl";
+
+    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/UserRegistrationFilter.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/filter/UserRegistrationFilter.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,253 @@
+/*
+ * 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.
+ */
+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
+{
+    private PortalAdministration portalAdministration;
+
+    private UserManager userManager;
+
+    private Map<String, Object> userRegistrationParams;
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.portals.bridges.portletfilter.PortletFilter#destroy()
+     */
+    public void destroy()
+    {
+        portalAdministration = null;
+        userManager = null;
+        userRegistrationParams = null;
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     * @see org.apache.portals.bridges.portletfilter.PortletFilter#init(org.apache.portals.bridges.portletfilter.PortletFilterConfig)
+     */
+    public void init(PortletFilterConfig filterConfig) throws PortletException
+    {
+        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");
+            }
+
+            userRegistrationParams = new HashMap<String, Object>();
+
+            // 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);
+        }
+    }
+
+    /*
+     * (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);
+
+        chain.processActionFilter(request, response);
+    }
+
+    /*
+     * (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);
+
+        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);
+    }
+}


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

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserRegistrationService.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,581 @@
+package jp.sf.pal.admin.service;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+import javax.portlet.PortletConfig;
+
+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.UserRegistrationPage;
+import jp.sf.pal.common.CommonException;
+
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.administration.AdministrationEmailException;
+import org.apache.jetspeed.administration.RegistrationException;
+import org.apache.jetspeed.locator.JetspeedTemplateLocator;
+import org.apache.jetspeed.locator.LocatorDescriptor;
+import org.apache.jetspeed.locator.TemplateDescriptor;
+import org.apache.jetspeed.locator.TemplateLocatorException;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.security.User;
+import org.seasar.teeda.extension.util.LabelHelper;
+
+public class UserRegistrationService implements Serializable
+{
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 2841077517815298990L;
+
+    private static final String PATH_SEPARATOR = "/";
+
+    private static final String RB_EMAIL_SUBJECT = "email.subject.registration";
+
+    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))
+        {
+            if (page.getPassword() == null || page.getPassword().equals(""))
+            {
+                throw new CommonException("error.lacking.password",
+                        "The password is null.");
+            }
+        }
+
+        if (UserRegistrationUtil
+                .getBoolean(PALAdminConstants.FORCE_USE_EMAIL_AS_USERNAME))
+        {
+            // force user.name to be same as email
+            page.setUserName(page.getUserBusinessInfoOnlineEmail());
+        }
+
+        boolean userIdExistsFlag = true;
+        try
+        {
+            PortalComponentUtil.getUserManager().getUser(page.getUserName());
+        }
+        catch (org.apache.jetspeed.security.SecurityException e)
+        {
+            userIdExistsFlag = false;
+        }
+
+        if (userIdExistsFlag)
+        {
+            throw new CommonException("error.userid_already_exists",
+                    "The user id already exists.");
+        }
+
+        if (UserRegistrationUtil
+                .getBoolean(PALAdminConstants.FORCE_UNIQUE_EMAIL))
+        {
+            boolean emailExistsFlag = true;
+            User user = null;
+            try
+            {
+                user = PortalComponentUtil.getPortalAdministration()
+                        .lookupUserFromEmail(
+                                page.getUserBusinessInfoOnlineEmail());
+            }
+            catch (AdministrationEmailException e)
+            {
+                emailExistsFlag = false;
+            }
+            if ((emailExistsFlag) || (user != null))
+            {
+                throw new CommonException("error.email_already_exists",
+                        "The email already exists.");
+            }
+
+        }
+
+        if (UserRegistrationUtil
+                .getBoolean(PALAdminConstants.FORCE_GENERATED_PASSWORD))
+        {
+            try
+            {
+                String password = PortalComponentUtil.getPortalAdministration()
+                        .generatePassword();
+                page.setPassword(password);
+            }
+            catch (Exception e)
+            {
+                throw new CommonException("error.failed_to_add",
+                        "Could not create password.", e);
+            }
+        }
+        else
+        {
+            if (!page.getPassword().equals(page.getVerifyPassword()))
+            {
+                throw new CommonException("error.two_passwords_do_not_match",
+                        "Two passwords do not match.");
+            }
+        }
+
+        // Ok, we think we're good to go, let's create the user!
+        Map userInfo = createUserInfoMap(page);
+
+        try
+        {
+            PortalComponentUtil.getPortalAdministration()
+                    .registerUser(
+                            page.getUserName(),
+                            page.getPassword(),
+                            UserRegistrationUtil
+                                    .getStringList(PALAdminConstants.ROLES),
+                            UserRegistrationUtil
+                                    .getStringList(PALAdminConstants.GROUPS),
+                            userInfo, // note use of only
+                            // PLT.D values here.
+                            UserRegistrationUtil
+                                    .getStringMap(PALAdminConstants.RULES),
+                            null); // passing in null causes use of default
+        }
+        catch (RegistrationException e)
+        {
+            throw new CommonException("error.failed_to_add",
+                    "Could not register a user.", e);
+        }
+
+        // template
+        String templ = getTemplatePath(page.getFacesContext());
+
+        if (templ == null)
+        {
+            throw new CommonException(
+                    "error.registration_completed_but_could_not_send",
+                    "Email template is not available.");
+        }
+
+        if (UserRegistrationUtil.getBoolean(PALAdminConstants.SEND_MAIL))
+        {
+            if (page.getPassword() != null)
+            {
+                userInfo.put("password", page.getPassword());
+            }
+
+            try
+            {
+                PortalComponentUtil.getPortalAdministration()
+                        .sendEmail(
+                                (PortletConfig) page.getFacesContext()
+                                        .getExternalContext().getRequestMap()
+                                        .get("javax.portlet.PortletConfig"),
+                                page.getUserBusinessInfoOnlineEmail(),
+                                getEmailSubject(page.getLabelHelper()), templ,
+                                userInfo);
+            }
+            catch (AdministrationEmailException e)
+            {
+                throw new CommonException(
+                        "error.registration_completed_but_could_not_send",
+                        "Could not send a registration mail.", e);
+            }
+        }
+
+    }
+
+    protected String getTemplatePath(FacesContext facesContext)
+    {
+        JetspeedTemplateLocator templateLocator = UserRegistrationUtil
+                .getTemplateLocator();
+        String templateLocation = UserRegistrationUtil
+                .getString(PALAdminConstants.EMAIL_TEMPLATE_LOCATION);
+        String templateName = UserRegistrationUtil
+                .getString(PALAdminConstants.EMAIL_TEMPLATE_NAME);
+        if (templateLocator == null)
+        {
+            return templateLocation + PATH_SEPARATOR + templateName;
+        }
+
+        RequestContext requestContext = (RequestContext) facesContext
+                .getExternalContext().getRequestMap().get(
+                        PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+        Locale locale = facesContext.getViewRoot().getLocale();
+
+        try
+        {
+            LocatorDescriptor locator = templateLocator
+                    .createLocatorDescriptor("email");
+            locator.setName(templateName);
+            locator.setMediaType(requestContext.getMediaType());
+            locator.setLanguage(locale.getLanguage());
+            locator.setCountry(locale.getCountry());
+            TemplateDescriptor template = templateLocator
+                    .locateTemplate(locator);
+
+            return template.getAppRelativePath();
+        }
+        catch (TemplateLocatorException e)
+        {
+            return templateLocation + PATH_SEPARATOR + templateName;
+        }
+    }
+
+    protected String getEmailSubject(LabelHelper labelHelper)
+    {
+        String emailSubject = labelHelper.getLabelValue(RB_EMAIL_SUBJECT);
+        if (emailSubject == null)
+            emailSubject = "Registration Confirmation";
+        return emailSubject;
+    }
+
+    protected Map<String, String> createUserInfoMap(UserRegistrationPage page)
+    {
+        Map<String, String> userInfo = new HashMap<String, String>();
+
+        if (page.getUserBusinessInfoOnlineEmail() != null)
+        {
+            userInfo.put("user.business-info.online.email", page
+                    .getUserBusinessInfoOnlineEmail());
+        }
+        if (page.getUserName() != null)
+        {
+            userInfo.put("user.name", page.getUserName());
+        }
+        if (page.getUserBdate() != null)
+        {
+            userInfo.put("user.bdate", page.getUserBdate());
+        }
+        if (page.getUserGender() != null)
+        {
+            userInfo.put("user.gender", page.getUserGender());
+        }
+        if (page.getUserEmployer() != null)
+        {
+            userInfo.put("user.employer", page.getUserEmployer());
+        }
+        if (page.getUserDepartment() != null)
+        {
+            userInfo.put("user.department", page.getUserDepartment());
+        }
+        if (page.getUserJobtitle() != null)
+        {
+            userInfo.put("user.jobtitle", page.getUserJobtitle());
+        }
+        if (page.getUserNamePrefix() != null)
+        {
+            userInfo.put("user.name.prefix", page.getUserNamePrefix());
+        }
+        if (page.getUserNameGiven() != null)
+        {
+            userInfo.put("user.name.given", page.getUserNameGiven());
+        }
+        if (page.getUserNameFamily() != null)
+        {
+            userInfo.put("user.name.family", page.getUserNameFamily());
+        }
+        if (page.getUserNameMiddle() != null)
+        {
+            userInfo.put("user.name.middle", page.getUserNameMiddle());
+        }
+        if (page.getUserNameSuffix() != null)
+        {
+            userInfo.put("user.name.suffix", page.getUserNameSuffix());
+        }
+        if (page.getUserNameNickName() != null)
+        {
+            userInfo.put("user.name.nickName", page.getUserNameNickName());
+        }
+        if (page.getUserHomeInfoPostalName() != null)
+        {
+            userInfo.put("user.home-info.postal.name", page
+                    .getUserHomeInfoPostalName());
+        }
+        if (page.getUserHomeInfoPostalStreet() != null)
+        {
+            userInfo.put("user.home-info.postal.street", page
+                    .getUserHomeInfoPostalStreet());
+        }
+        if (page.getUserHomeInfoPostalCity() != null)
+        {
+            userInfo.put("user.home-info.postal.city", page
+                    .getUserHomeInfoPostalCity());
+        }
+        if (page.getUserHomeInfoPostalStateprov() != null)
+        {
+            userInfo.put("user.home-info.postal.stateprov", page
+                    .getUserHomeInfoPostalStateprov());
+        }
+        if (page.getUserHomeInfoPostalPostalcode() != null)
+        {
+            userInfo.put("user.home-info.postal.postalcode", page
+                    .getUserHomeInfoPostalPostalcode());
+        }
+        if (page.getUserHomeInfoPostalCountry() != null)
+        {
+            userInfo.put("user.home-info.postal.country", page
+                    .getUserHomeInfoPostalCountry());
+        }
+        if (page.getUserHomeInfoPostalOrganization() != null)
+        {
+            userInfo.put("user.home-info.postal.organization", page
+                    .getUserHomeInfoPostalOrganization());
+        }
+        if (page.getUserHomeInfoTelecomTelephoneIntcode() != null)
+        {
+            userInfo.put("user.home-info.telecom.telephone.intcode", page
+                    .getUserHomeInfoTelecomTelephoneIntcode());
+        }
+        if (page.getUserHomeInfoTelecomTelephoneLoccode() != null)
+        {
+            userInfo.put("user.home-info.telecom.telephone.loccode", page
+                    .getUserHomeInfoTelecomTelephoneLoccode());
+        }
+        if (page.getUserHomeInfoTelecomTelephoneNumber() != null)
+        {
+            userInfo.put("user.home-info.telecom.telephone.number", page
+                    .getUserHomeInfoTelecomTelephoneNumber());
+        }
+        if (page.getUserHomeInfoTelecomTelephoneExt() != null)
+        {
+            userInfo.put("user.home-info.telecom.telephone.ext", page
+                    .getUserHomeInfoTelecomTelephoneExt());
+        }
+        if (page.getUserHomeInfoTelecomTelephoneComment() != null)
+        {
+            userInfo.put("user.home-info.telecom.telephone.comment", page
+                    .getUserHomeInfoTelecomTelephoneComment());
+        }
+        if (page.getUserHomeInfoTelecomFaxIntcode() != null)
+        {
+            userInfo.put("user.home-info.telecom.fax.intcode", page
+                    .getUserHomeInfoTelecomFaxIntcode());
+        }
+        if (page.getUserHomeInfoTelecomFaxLoccode() != null)
+        {
+            userInfo.put("user.home-info.telecom.fax.loccode", page
+                    .getUserHomeInfoTelecomFaxLoccode());
+        }
+        if (page.getUserHomeInfoTelecomFaxNumber() != null)
+        {
+            userInfo.put("user.home-info.telecom.fax.number", page
+                    .getUserHomeInfoTelecomFaxNumber());
+        }
+        if (page.getUserHomeInfoTelecomFaxExt() != null)
+        {
+            userInfo.put("user.home-info.telecom.fax.ext", page
+                    .getUserHomeInfoTelecomFaxExt());
+        }
+        if (page.getUserHomeInfoTelecomFaxComment() != null)
+        {
+            userInfo.put("user.home-info.telecom.fax.comment", page
+                    .getUserHomeInfoTelecomFaxComment());
+        }
+        if (page.getUserHomeInfoTelecomMobileIntcode() != null)
+        {
+            userInfo.put("user.home-info.telecom.mobile.intcode", page
+                    .getUserHomeInfoTelecomMobileIntcode());
+        }
+        if (page.getUserHomeInfoTelecomMobileLoccode() != null)
+        {
+            userInfo.put("user.home-info.telecom.mobile.loccode", page
+                    .getUserHomeInfoTelecomMobileLoccode());
+        }
+        if (page.getUserHomeInfoTelecomMobileNumber() != null)
+        {
+            userInfo.put("user.home-info.telecom.mobile.number", page
+                    .getUserHomeInfoTelecomMobileNumber());
+        }
+        if (page.getUserHomeInfoTelecomMobileExt() != null)
+        {
+            userInfo.put("user.home-info.telecom.mobile.ext", page
+                    .getUserHomeInfoTelecomMobileExt());
+        }
+        if (page.getUserHomeInfoTelecomMobileComment() != null)
+        {
+            userInfo.put("user.home-info.telecom.mobile.comment", page
+                    .getUserHomeInfoTelecomMobileComment());
+        }
+        if (page.getUserHomeInfoTelecomPagerIntcode() != null)
+        {
+            userInfo.put("user.home-info.telecom.pager.intcode", page
+                    .getUserHomeInfoTelecomPagerIntcode());
+        }
+        if (page.getUserHomeInfoTelecomPagerLoccode() != null)
+        {
+            userInfo.put("user.home-info.telecom.pager.loccode", page
+                    .getUserHomeInfoTelecomPagerLoccode());
+        }
+        if (page.getUserHomeInfoTelecomPagerNumber() != null)
+        {
+            userInfo.put("user.home-info.telecom.pager.number", page
+                    .getUserHomeInfoTelecomPagerNumber());
+        }
+        if (page.getUserHomeInfoTelecomPagerExt() != null)
+        {
+            userInfo.put("user.home-info.telecom.pager.ext", page
+                    .getUserHomeInfoTelecomPagerExt());
+        }
+        if (page.getUserHomeInfoTelecomPagerComment() != null)
+        {
+            userInfo.put("user.home-info.telecom.pager.comment", page
+                    .getUserHomeInfoTelecomPagerComment());
+        }
+        if (page.getUserHomeInfoOnlineEmail() != null)
+        {
+            userInfo.put("user.home-info.online.email", page
+                    .getUserHomeInfoOnlineEmail());
+        }
+        if (page.getUserHomeInfoOnlineUri() != null)
+        {
+            userInfo.put("user.home-info.online.uri", page
+                    .getUserHomeInfoOnlineUri());
+        }
+        if (page.getUserBusinessInfoPostalName() != null)
+        {
+            userInfo.put("user.business-info.postal.name", page
+                    .getUserBusinessInfoPostalName());
+        }
+        if (page.getUserBusinessInfoPostalStreet() != null)
+        {
+            userInfo.put("user.business-info.postal.street", page
+                    .getUserBusinessInfoPostalStreet());
+        }
+        if (page.getUserBusinessInfoPostalCity() != null)
+        {
+            userInfo.put("user.business-info.postal.city", page
+                    .getUserBusinessInfoPostalCity());
+        }
+        if (page.getUserBusinessInfoPostalStateprov() != null)
+        {
+            userInfo.put("user.business-info.postal.stateprov", page
+                    .getUserBusinessInfoPostalStateprov());
+        }
+        if (page.getUserBusinessInfoPostalPostalcode() != null)
+        {
+            userInfo.put("user.business-info.postal.postalcode", page
+                    .getUserBusinessInfoPostalPostalcode());
+        }
+        if (page.getUserBusinessInfoPostalCountry() != null)
+        {
+            userInfo.put("user.business-info.postal.country", page
+                    .getUserBusinessInfoPostalCountry());
+        }
+        if (page.getUserBusinessInfoPostalOrganization() != null)
+        {
+            userInfo.put("user.business-info.postal.organization", page
+                    .getUserBusinessInfoPostalOrganization());
+        }
+        if (page.getUserBusinessInfoTelecomTelephoneIntcode() != null)
+        {
+            userInfo.put("user.business-info.telecom.telephone.intcode", page
+                    .getUserBusinessInfoTelecomTelephoneIntcode());
+        }
+        if (page.getUserBusinessInfoTelecomTelephoneLoccode() != null)
+        {
+            userInfo.put("user.business-info.telecom.telephone.loccode", page
+                    .getUserBusinessInfoTelecomTelephoneLoccode());
+        }
+        if (page.getUserBusinessInfoTelecomTelephoneNumber() != null)
+        {
+            userInfo.put("user.business-info.telecom.telephone.number", page
+                    .getUserBusinessInfoTelecomTelephoneNumber());
+        }
+        if (page.getUserBusinessInfoTelecomTelephoneExt() != null)
+        {
+            userInfo.put("user.business-info.telecom.telephone.ext", page
+                    .getUserBusinessInfoTelecomTelephoneExt());
+        }
+        if (page.getUserBusinessInfoTelecomTelephoneComment() != null)
+        {
+            userInfo.put("user.business-info.telecom.telephone.comment", page
+                    .getUserBusinessInfoTelecomTelephoneComment());
+        }
+        if (page.getUserBusinessInfoTelecomFaxIntcode() != null)
+        {
+            userInfo.put("user.business-info.telecom.fax.intcode", page
+                    .getUserBusinessInfoTelecomFaxIntcode());
+        }
+        if (page.getUserBusinessInfoTelecomFaxLoccode() != null)
+        {
+            userInfo.put("user.business-info.telecom.fax.loccode", page
+                    .getUserBusinessInfoTelecomFaxLoccode());
+        }
+        if (page.getUserBusinessInfoTelecomFaxNumber() != null)
+        {
+            userInfo.put("user.business-info.telecom.fax.number", page
+                    .getUserBusinessInfoTelecomFaxNumber());
+        }
+        if (page.getUserBusinessInfoTelecomFaxExt() != null)
+        {
+            userInfo.put("user.business-info.telecom.fax.ext", page
+                    .getUserBusinessInfoTelecomFaxExt());
+        }
+        if (page.getUserBusinessInfoTelecomFaxComment() != null)
+        {
+            userInfo.put("user.business-info.telecom.fax.comment", page
+                    .getUserBusinessInfoTelecomFaxComment());
+        }
+        if (page.getUserBusinessInfoTelecomMobileIntcode() != null)
+        {
+            userInfo.put("user.business-info.telecom.mobile.intcode", page
+                    .getUserBusinessInfoTelecomMobileIntcode());
+        }
+        if (page.getUserBusinessInfoTelecomMobileLoccode() != null)
+        {
+            userInfo.put("user.business-info.telecom.mobile.loccode", page
+                    .getUserBusinessInfoTelecomMobileLoccode());
+        }
+        if (page.getUserBusinessInfoTelecomMobileNumber() != null)
+        {
+            userInfo.put("user.business-info.telecom.mobile.number", page
+                    .getUserBusinessInfoTelecomMobileNumber());
+        }
+        if (page.getUserBusinessInfoTelecomMobileExt() != null)
+        {
+            userInfo.put("user.business-info.telecom.mobile.ext", page
+                    .getUserBusinessInfoTelecomMobileExt());
+        }
+        if (page.getUserBusinessInfoTelecomMobileComment() != null)
+        {
+            userInfo.put("user.business-info.telecom.mobile.comment", page
+                    .getUserBusinessInfoTelecomMobileComment());
+        }
+        if (page.getUserBusinessInfoTelecomPagerIntcode() != null)
+        {
+            userInfo.put("user.business-info.telecom.pager.intcode", page
+                    .getUserBusinessInfoTelecomPagerIntcode());
+        }
+        if (page.getUserBusinessInfoTelecomPagerLoccode() != null)
+        {
+            userInfo.put("user.business-info.telecom.pager.loccode", page
+                    .getUserBusinessInfoTelecomPagerLoccode());
+        }
+        if (page.getUserBusinessInfoTelecomPagerNumber() != null)
+        {
+            userInfo.put("user.business-info.telecom.pager.number", page
+                    .getUserBusinessInfoTelecomPagerNumber());
+        }
+        if (page.getUserBusinessInfoTelecomPagerExt() != null)
+        {
+            userInfo.put("user.business-info.telecom.pager.ext", page
+                    .getUserBusinessInfoTelecomPagerExt());
+        }
+        if (page.getUserBusinessInfoTelecomPagerComment() != null)
+        {
+            userInfo.put("user.business-info.telecom.pager.comment", page
+                    .getUserBusinessInfoTelecomPagerComment());
+        }
+        if (page.getUserBusinessInfoOnlineUri() != null)
+        {
+            userInfo.put("user.business-info.online.uri", page
+                    .getUserBusinessInfoOnlineUri());
+        }
+
+        return userInfo;
+    }
+}


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

Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PALAdminUtil.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PALAdminUtil.java	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PALAdminUtil.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -170,4 +170,5 @@
         getFacesContext().getExternalContext().getSessionMap().remove(
                 PALAdminConstants.PASSWORD);
     }
+
 }

Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PortalComponentUtil.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PortalComponentUtil.java	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/PortalComponentUtil.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -20,6 +20,7 @@
 
 import jp.sf.pal.admin.PALAdminConstants;
 
+import org.apache.jetspeed.administration.PortalAdministration;
 import org.apache.jetspeed.components.portletregistry.PortletRegistry;
 import org.apache.jetspeed.deployment.DeploymentManager;
 import org.apache.jetspeed.factory.PortletFactory;
@@ -105,4 +106,11 @@
                 .getRequestMap().get(
                         PALAdminConstants.DEPLOYMENT_MANAGER_COMPONENT);
     }
+
+    public static PortalAdministration getPortalAdministration()
+    {
+        return (PortalAdministration) getFacesContext().getExternalContext()
+                .getRequestMap().get(
+                        PALAdminConstants.PORTAL_ADMINISTRATION_COMPONENT);
+    }
 }

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/UserRegistrationUtil.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/UserRegistrationUtil.java	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/util/UserRegistrationUtil.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,88 @@
+package jp.sf.pal.admin.util;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+
+import org.apache.jetspeed.locator.JetspeedTemplateLocator;
+
+import jp.sf.pal.admin.PALAdminConstants;
+
+public class UserRegistrationUtil
+{
+    private static FacesContext getFacesContext()
+    {
+        return FacesContext.getCurrentInstance();
+    }
+
+    public static Map<String, Object> getUserRegistrationParams()
+    {
+        Map<String, Object> params = (Map<String, Object>) getFacesContext()
+                .getExternalContext().getRequestMap().get(
+                        PALAdminConstants.USER_REGISTRATION_PARAMS);
+        if (params == null)
+        {
+            throw new IllegalStateException(
+                    "The user registration params is null. ");
+        }
+        return params;
+    }
+
+    public static boolean getBoolean(String key)
+    {
+        Object value = getUserRegistrationParams().get(key);
+        if (value == null)
+        {
+            return false;
+        }
+        return ((Boolean) value).booleanValue();
+    }
+
+    public static String getString(String key)
+    {
+        return (String) getUserRegistrationParams().get(key);
+    }
+
+    public static List<String> getStringList(String key)
+    {
+        Object value = getUserRegistrationParams().get(key);
+        if (value == null)
+        {
+            return new ArrayList<String>();
+        }
+        return (List<String>) value;
+
+    }
+
+    public static Map<String, String> getStringMap(String key)
+    {
+        Object value = getUserRegistrationParams().get(key);
+        if (value == null)
+        {
+            return new HashMap<String, String>();
+        }
+        return (Map<String, String>) value;
+
+    }
+
+    public static JetspeedTemplateLocator getTemplateLocator()
+    {
+        return (JetspeedTemplateLocator) getUserRegistrationParams().get(
+                PALAdminConstants.TEMPLATE_LOCATOR);
+    }
+
+    public static 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;
+    }
+
+}


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

Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/UserRegistrationPage.java
===================================================================
--- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/UserRegistrationPage.java	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/registration/UserRegistrationPage.java	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,1108 @@
+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.PALAdminConstants;
+import jp.sf.pal.admin.service.UserRegistrationService;
+import jp.sf.pal.admin.util.UserRegistrationUtil;
+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.Length;
+import org.seasar.teeda.extension.annotation.validator.Required;
+import org.seasar.teeda.extension.util.LabelHelper;
+
+public class UserRegistrationPage implements Serializable
+{
+
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -8133681534556233811L;
+
+    /**
+     * Logger for this class
+     */
+    private static final Logger logger = Logger
+            .getLogger(UserRegistrationPage.class);
+
+    private FacesContext facesContext;
+
+    private LabelHelper labelHelper;
+
+    private UserRegistrationService userRegistrationService;
+
+    @Length(maximum = 80)
+    private String password;
+
+    @Length(maximum = 25)
+    private String userBdate;
+
+    @Required
+    @Length(maximum = 80)
+    private String userBusinessInfoOnlineEmail;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoOnlineUri;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalCity;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalCountry;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalName;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalOrganization;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalPostalcode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalStateprov;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoPostalStreet;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomFaxComment;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomFaxExt;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomFaxIntcode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomFaxLoccode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomFaxNumber;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomMobileComment;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomMobileExt;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomMobileIntcode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomMobileLoccode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomMobileNumber;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomPagerComment;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomPagerExt;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomPagerIntcode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomPagerLoccode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomPagerNumber;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomTelephoneComment;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomTelephoneExt;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomTelephoneIntcode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomTelephoneLoccode;
+
+    @Length(maximum = 80)
+    private String userBusinessInfoTelecomTelephoneNumber;
+
+    @Length(maximum = 80)
+    private String userDepartment;
+
+    @Length(maximum = 80)
+    private String userEmployer;
+
+    @Length(maximum = 10)
+    private String userGender;
+
+    @Length(maximum = 80)
+    private String userHomeInfoOnlineEmail;
+
+    @Length(maximum = 80)
+    private String userHomeInfoOnlineUri;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalCity;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalCountry;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalName;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalOrganization;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalPostalcode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalStateprov;
+
+    @Length(maximum = 80)
+    private String userHomeInfoPostalStreet;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomFaxComment;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomFaxExt;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomFaxIntcode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomFaxLoccode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomFaxNumber;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomMobileComment;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomMobileExt;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomMobileIntcode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomMobileLoccode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomMobileNumber;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomPagerComment;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomPagerExt;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomPagerIntcode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomPagerLoccode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomPagerNumber;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomTelephoneComment;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomTelephoneExt;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomTelephoneIntcode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomTelephoneLoccode;
+
+    @Length(maximum = 80)
+    private String userHomeInfoTelecomTelephoneNumber;
+
+    @Length(maximum = 80)
+    private String userJobtitle;
+
+    @Required
+    @Length(maximum = 80)
+    private String userName;
+
+    @Length(maximum = 30)
+    private String userNameFamily;
+
+    @Length(maximum = 30)
+    private String userNameGiven;
+
+    @Length(maximum = 30)
+    private String userNameMiddle;
+
+    @Length(maximum = 30)
+    private String userNameNickName;
+
+    @Length(maximum = 10)
+    private String userNamePrefix;
+
+    @Length(maximum = 10)
+    private String userNameSuffix;
+
+    @Length(maximum = 80)
+    private String verifyPassword;
+
+    /**
+     * @return the facesContext
+     */
+    public FacesContext getFacesContext()
+    {
+        return facesContext;
+    }
+
+    /**
+     * @param facesContext the facesContext to set
+     */
+    public void setFacesContext(FacesContext facesContext)
+    {
+        this.facesContext = facesContext;
+    }
+
+    /**
+     * @return the userRegistrationService
+     */
+    public UserRegistrationService getUserRegistrationService()
+    {
+        return userRegistrationService;
+    }
+
+    /**
+     * @param userRegistrationService the userRegistrationService to set
+     */
+    public void setUserRegistrationService(
+            UserRegistrationService userRegistrationService)
+    {
+        this.userRegistrationService = userRegistrationService;
+    }
+
+    /**
+     * @return the labelHelper
+     */
+    public LabelHelper getLabelHelper()
+    {
+        return labelHelper;
+    }
+
+    /**
+     * @param labelHelper the labelHelper to set
+     */
+    public void setLabelHelper(LabelHelper labelHelper)
+    {
+        this.labelHelper = labelHelper;
+    }
+
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getUserBdate()
+    {
+        return userBdate;
+    }
+
+    public void setUserBdate(String userBdate)
+    {
+        this.userBdate = userBdate;
+    }
+
+    public String getUserBusinessInfoOnlineEmail()
+    {
+        return userBusinessInfoOnlineEmail;
+    }
+
+    public void setUserBusinessInfoOnlineEmail(
+            String userBusinessInfoOnlineEmail)
+    {
+        this.userBusinessInfoOnlineEmail = userBusinessInfoOnlineEmail;
+    }
+
+    public String getUserBusinessInfoOnlineUri()
+    {
+        return userBusinessInfoOnlineUri;
+    }
+
+    public void setUserBusinessInfoOnlineUri(String userBusinessInfoOnlineUri)
+    {
+        this.userBusinessInfoOnlineUri = userBusinessInfoOnlineUri;
+    }
+
+    public String getUserBusinessInfoPostalCity()
+    {
+        return userBusinessInfoPostalCity;
+    }
+
+    public void setUserBusinessInfoPostalCity(String userBusinessInfoPostalCity)
+    {
+        this.userBusinessInfoPostalCity = userBusinessInfoPostalCity;
+    }
+
+    public String getUserBusinessInfoPostalCountry()
+    {
+        return userBusinessInfoPostalCountry;
+    }
+
+    public void setUserBusinessInfoPostalCountry(
+            String userBusinessInfoPostalCountry)
+    {
+        this.userBusinessInfoPostalCountry = userBusinessInfoPostalCountry;
+    }
+
+    public String getUserBusinessInfoPostalName()
+    {
+        return userBusinessInfoPostalName;
+    }
+
+    public void setUserBusinessInfoPostalName(String userBusinessInfoPostalName)
+    {
+        this.userBusinessInfoPostalName = userBusinessInfoPostalName;
+    }
+
+    public String getUserBusinessInfoPostalOrganization()
+    {
+        return userBusinessInfoPostalOrganization;
+    }
+
+    public void setUserBusinessInfoPostalOrganization(
+            String userBusinessInfoPostalOrganization)
+    {
+        this.userBusinessInfoPostalOrganization = userBusinessInfoPostalOrganization;
+    }
+
+    public String getUserBusinessInfoPostalPostalcode()
+    {
+        return userBusinessInfoPostalPostalcode;
+    }
+
+    public void setUserBusinessInfoPostalPostalcode(
+            String userBusinessInfoPostalPostalcode)
+    {
+        this.userBusinessInfoPostalPostalcode = userBusinessInfoPostalPostalcode;
+    }
+
+    public String getUserBusinessInfoPostalStateprov()
+    {
+        return userBusinessInfoPostalStateprov;
+    }
+
+    public void setUserBusinessInfoPostalStateprov(
+            String userBusinessInfoPostalStateprov)
+    {
+        this.userBusinessInfoPostalStateprov = userBusinessInfoPostalStateprov;
+    }
+
+    public String getUserBusinessInfoPostalStreet()
+    {
+        return userBusinessInfoPostalStreet;
+    }
+
+    public void setUserBusinessInfoPostalStreet(
+            String userBusinessInfoPostalStreet)
+    {
+        this.userBusinessInfoPostalStreet = userBusinessInfoPostalStreet;
+    }
+
+    public String getUserBusinessInfoTelecomFaxComment()
+    {
+        return userBusinessInfoTelecomFaxComment;
+    }
+
+    public void setUserBusinessInfoTelecomFaxComment(
+            String userBusinessInfoTelecomFaxComment)
+    {
+        this.userBusinessInfoTelecomFaxComment = userBusinessInfoTelecomFaxComment;
+    }
+
+    public String getUserBusinessInfoTelecomFaxExt()
+    {
+        return userBusinessInfoTelecomFaxExt;
+    }
+
+    public void setUserBusinessInfoTelecomFaxExt(
+            String userBusinessInfoTelecomFaxExt)
+    {
+        this.userBusinessInfoTelecomFaxExt = userBusinessInfoTelecomFaxExt;
+    }
+
+    public String getUserBusinessInfoTelecomFaxIntcode()
+    {
+        return userBusinessInfoTelecomFaxIntcode;
+    }
+
+    public void setUserBusinessInfoTelecomFaxIntcode(
+            String userBusinessInfoTelecomFaxIntcode)
+    {
+        this.userBusinessInfoTelecomFaxIntcode = userBusinessInfoTelecomFaxIntcode;
+    }
+
+    public String getUserBusinessInfoTelecomFaxLoccode()
+    {
+        return userBusinessInfoTelecomFaxLoccode;
+    }
+
+    public void setUserBusinessInfoTelecomFaxLoccode(
+            String userBusinessInfoTelecomFaxLoccode)
+    {
+        this.userBusinessInfoTelecomFaxLoccode = userBusinessInfoTelecomFaxLoccode;
+    }
+
+    public String getUserBusinessInfoTelecomFaxNumber()
+    {
+        return userBusinessInfoTelecomFaxNumber;
+    }
+
+    public void setUserBusinessInfoTelecomFaxNumber(
+            String userBusinessInfoTelecomFaxNumber)
+    {
+        this.userBusinessInfoTelecomFaxNumber = userBusinessInfoTelecomFaxNumber;
+    }
+
+    public String getUserBusinessInfoTelecomMobileComment()
+    {
+        return userBusinessInfoTelecomMobileComment;
+    }
+
+    public void setUserBusinessInfoTelecomMobileComment(
+            String userBusinessInfoTelecomMobileComment)
+    {
+        this.userBusinessInfoTelecomMobileComment = userBusinessInfoTelecomMobileComment;
+    }
+
+    public String getUserBusinessInfoTelecomMobileExt()
+    {
+        return userBusinessInfoTelecomMobileExt;
+    }
+
+    public void setUserBusinessInfoTelecomMobileExt(
+            String userBusinessInfoTelecomMobileExt)
+    {
+        this.userBusinessInfoTelecomMobileExt = userBusinessInfoTelecomMobileExt;
+    }
+
+    public String getUserBusinessInfoTelecomMobileIntcode()
+    {
+        return userBusinessInfoTelecomMobileIntcode;
+    }
+
+    public void setUserBusinessInfoTelecomMobileIntcode(
+            String userBusinessInfoTelecomMobileIntcode)
+    {
+        this.userBusinessInfoTelecomMobileIntcode = userBusinessInfoTelecomMobileIntcode;
+    }
+
+    public String getUserBusinessInfoTelecomMobileLoccode()
+    {
+        return userBusinessInfoTelecomMobileLoccode;
+    }
+
+    public void setUserBusinessInfoTelecomMobileLoccode(
+            String userBusinessInfoTelecomMobileLoccode)
+    {
+        this.userBusinessInfoTelecomMobileLoccode = userBusinessInfoTelecomMobileLoccode;
+    }
+
+    public String getUserBusinessInfoTelecomMobileNumber()
+    {
+        return userBusinessInfoTelecomMobileNumber;
+    }
+
+    public void setUserBusinessInfoTelecomMobileNumber(
+            String userBusinessInfoTelecomMobileNumber)
+    {
+        this.userBusinessInfoTelecomMobileNumber = userBusinessInfoTelecomMobileNumber;
+    }
+
+    public String getUserBusinessInfoTelecomPagerComment()
+    {
+        return userBusinessInfoTelecomPagerComment;
+    }
+
+    public void setUserBusinessInfoTelecomPagerComment(
+            String userBusinessInfoTelecomPagerComment)
+    {
+        this.userBusinessInfoTelecomPagerComment = userBusinessInfoTelecomPagerComment;
+    }
+
+    public String getUserBusinessInfoTelecomPagerExt()
+    {
+        return userBusinessInfoTelecomPagerExt;
+    }
+
+    public void setUserBusinessInfoTelecomPagerExt(
+            String userBusinessInfoTelecomPagerExt)
+    {
+        this.userBusinessInfoTelecomPagerExt = userBusinessInfoTelecomPagerExt;
+    }
+
+    public String getUserBusinessInfoTelecomPagerIntcode()
+    {
+        return userBusinessInfoTelecomPagerIntcode;
+    }
+
+    public void setUserBusinessInfoTelecomPagerIntcode(
+            String userBusinessInfoTelecomPagerIntcode)
+    {
+        this.userBusinessInfoTelecomPagerIntcode = userBusinessInfoTelecomPagerIntcode;
+    }
+
+    public String getUserBusinessInfoTelecomPagerLoccode()
+    {
+        return userBusinessInfoTelecomPagerLoccode;
+    }
+
+    public void setUserBusinessInfoTelecomPagerLoccode(
+            String userBusinessInfoTelecomPagerLoccode)
+    {
+        this.userBusinessInfoTelecomPagerLoccode = userBusinessInfoTelecomPagerLoccode;
+    }
+
+    public String getUserBusinessInfoTelecomPagerNumber()
+    {
+        return userBusinessInfoTelecomPagerNumber;
+    }
+
+    public void setUserBusinessInfoTelecomPagerNumber(
+            String userBusinessInfoTelecomPagerNumber)
+    {
+        this.userBusinessInfoTelecomPagerNumber = userBusinessInfoTelecomPagerNumber;
+    }
+
+    public String getUserBusinessInfoTelecomTelephoneComment()
+    {
+        return userBusinessInfoTelecomTelephoneComment;
+    }
+
+    public void setUserBusinessInfoTelecomTelephoneComment(
+            String userBusinessInfoTelecomTelephoneComment)
+    {
+        this.userBusinessInfoTelecomTelephoneComment = userBusinessInfoTelecomTelephoneComment;
+    }
+
+    public String getUserBusinessInfoTelecomTelephoneExt()
+    {
+        return userBusinessInfoTelecomTelephoneExt;
+    }
+
+    public void setUserBusinessInfoTelecomTelephoneExt(
+            String userBusinessInfoTelecomTelephoneExt)
+    {
+        this.userBusinessInfoTelecomTelephoneExt = userBusinessInfoTelecomTelephoneExt;
+    }
+
+    public String getUserBusinessInfoTelecomTelephoneIntcode()
+    {
+        return userBusinessInfoTelecomTelephoneIntcode;
+    }
+
+    public void setUserBusinessInfoTelecomTelephoneIntcode(
+            String userBusinessInfoTelecomTelephoneIntcode)
+    {
+        this.userBusinessInfoTelecomTelephoneIntcode = userBusinessInfoTelecomTelephoneIntcode;
+    }
+
+    public String getUserBusinessInfoTelecomTelephoneLoccode()
+    {
+        return userBusinessInfoTelecomTelephoneLoccode;
+    }
+
+    public void setUserBusinessInfoTelecomTelephoneLoccode(
+            String userBusinessInfoTelecomTelephoneLoccode)
+    {
+        this.userBusinessInfoTelecomTelephoneLoccode = userBusinessInfoTelecomTelephoneLoccode;
+    }
+
+    public String getUserBusinessInfoTelecomTelephoneNumber()
+    {
+        return userBusinessInfoTelecomTelephoneNumber;
+    }
+
+    public void setUserBusinessInfoTelecomTelephoneNumber(
+            String userBusinessInfoTelecomTelephoneNumber)
+    {
+        this.userBusinessInfoTelecomTelephoneNumber = userBusinessInfoTelecomTelephoneNumber;
+    }
+
+    public String getUserDepartment()
+    {
+        return userDepartment;
+    }
+
+    public void setUserDepartment(String userDepartment)
+    {
+        this.userDepartment = userDepartment;
+    }
+
+    public String getUserEmployer()
+    {
+        return userEmployer;
+    }
+
+    public void setUserEmployer(String userEmployer)
+    {
+        this.userEmployer = userEmployer;
+    }
+
+    public String getUserGender()
+    {
+        return userGender;
+    }
+
+    public void setUserGender(String userGender)
+    {
+        this.userGender = userGender;
+    }
+
+    public String getUserHomeInfoOnlineEmail()
+    {
+        return userHomeInfoOnlineEmail;
+    }
+
+    public void setUserHomeInfoOnlineEmail(String userHomeInfoOnlineEmail)
+    {
+        this.userHomeInfoOnlineEmail = userHomeInfoOnlineEmail;
+    }
+
+    public String getUserHomeInfoOnlineUri()
+    {
+        return userHomeInfoOnlineUri;
+    }
+
+    public void setUserHomeInfoOnlineUri(String userHomeInfoOnlineUri)
+    {
+        this.userHomeInfoOnlineUri = userHomeInfoOnlineUri;
+    }
+
+    public String getUserHomeInfoPostalCity()
+    {
+        return userHomeInfoPostalCity;
+    }
+
+    public void setUserHomeInfoPostalCity(String userHomeInfoPostalCity)
+    {
+        this.userHomeInfoPostalCity = userHomeInfoPostalCity;
+    }
+
+    public String getUserHomeInfoPostalCountry()
+    {
+        return userHomeInfoPostalCountry;
+    }
+
+    public void setUserHomeInfoPostalCountry(String userHomeInfoPostalCountry)
+    {
+        this.userHomeInfoPostalCountry = userHomeInfoPostalCountry;
+    }
+
+    public String getUserHomeInfoPostalName()
+    {
+        return userHomeInfoPostalName;
+    }
+
+    public void setUserHomeInfoPostalName(String userHomeInfoPostalName)
+    {
+        this.userHomeInfoPostalName = userHomeInfoPostalName;
+    }
+
+    public String getUserHomeInfoPostalOrganization()
+    {
+        return userHomeInfoPostalOrganization;
+    }
+
+    public void setUserHomeInfoPostalOrganization(
+            String userHomeInfoPostalOrganization)
+    {
+        this.userHomeInfoPostalOrganization = userHomeInfoPostalOrganization;
+    }
+
+    public String getUserHomeInfoPostalPostalcode()
+    {
+        return userHomeInfoPostalPostalcode;
+    }
+
+    public void setUserHomeInfoPostalPostalcode(
+            String userHomeInfoPostalPostalcode)
+    {
+        this.userHomeInfoPostalPostalcode = userHomeInfoPostalPostalcode;
+    }
+
+    public String getUserHomeInfoPostalStateprov()
+    {
+        return userHomeInfoPostalStateprov;
+    }
+
+    public void setUserHomeInfoPostalStateprov(
+            String userHomeInfoPostalStateprov)
+    {
+        this.userHomeInfoPostalStateprov = userHomeInfoPostalStateprov;
+    }
+
+    public String getUserHomeInfoPostalStreet()
+    {
+        return userHomeInfoPostalStreet;
+    }
+
+    public void setUserHomeInfoPostalStreet(String userHomeInfoPostalStreet)
+    {
+        this.userHomeInfoPostalStreet = userHomeInfoPostalStreet;
+    }
+
+    public String getUserHomeInfoTelecomFaxComment()
+    {
+        return userHomeInfoTelecomFaxComment;
+    }
+
+    public void setUserHomeInfoTelecomFaxComment(
+            String userHomeInfoTelecomFaxComment)
+    {
+        this.userHomeInfoTelecomFaxComment = userHomeInfoTelecomFaxComment;
+    }
+
+    public String getUserHomeInfoTelecomFaxExt()
+    {
+        return userHomeInfoTelecomFaxExt;
+    }
+
+    public void setUserHomeInfoTelecomFaxExt(String userHomeInfoTelecomFaxExt)
+    {
+        this.userHomeInfoTelecomFaxExt = userHomeInfoTelecomFaxExt;
+    }
+
+    public String getUserHomeInfoTelecomFaxIntcode()
+    {
+        return userHomeInfoTelecomFaxIntcode;
+    }
+
+    public void setUserHomeInfoTelecomFaxIntcode(
+            String userHomeInfoTelecomFaxIntcode)
+    {
+        this.userHomeInfoTelecomFaxIntcode = userHomeInfoTelecomFaxIntcode;
+    }
+
+    public String getUserHomeInfoTelecomFaxLoccode()
+    {
+        return userHomeInfoTelecomFaxLoccode;
+    }
+
+    public void setUserHomeInfoTelecomFaxLoccode(
+            String userHomeInfoTelecomFaxLoccode)
+    {
+        this.userHomeInfoTelecomFaxLoccode = userHomeInfoTelecomFaxLoccode;
+    }
+
+    public String getUserHomeInfoTelecomFaxNumber()
+    {
+        return userHomeInfoTelecomFaxNumber;
+    }
+
+    public void setUserHomeInfoTelecomFaxNumber(
+            String userHomeInfoTelecomFaxNumber)
+    {
+        this.userHomeInfoTelecomFaxNumber = userHomeInfoTelecomFaxNumber;
+    }
+
+    public String getUserHomeInfoTelecomMobileComment()
+    {
+        return userHomeInfoTelecomMobileComment;
+    }
+
+    public void setUserHomeInfoTelecomMobileComment(
+            String userHomeInfoTelecomMobileComment)
+    {
+        this.userHomeInfoTelecomMobileComment = userHomeInfoTelecomMobileComment;
+    }
+
+    public String getUserHomeInfoTelecomMobileExt()
+    {
+        return userHomeInfoTelecomMobileExt;
+    }
+
+    public void setUserHomeInfoTelecomMobileExt(
+            String userHomeInfoTelecomMobileExt)
+    {
+        this.userHomeInfoTelecomMobileExt = userHomeInfoTelecomMobileExt;
+    }
+
+    public String getUserHomeInfoTelecomMobileIntcode()
+    {
+        return userHomeInfoTelecomMobileIntcode;
+    }
+
+    public void setUserHomeInfoTelecomMobileIntcode(
+            String userHomeInfoTelecomMobileIntcode)
+    {
+        this.userHomeInfoTelecomMobileIntcode = userHomeInfoTelecomMobileIntcode;
+    }
+
+    public String getUserHomeInfoTelecomMobileLoccode()
+    {
+        return userHomeInfoTelecomMobileLoccode;
+    }
+
+    public void setUserHomeInfoTelecomMobileLoccode(
+            String userHomeInfoTelecomMobileLoccode)
+    {
+        this.userHomeInfoTelecomMobileLoccode = userHomeInfoTelecomMobileLoccode;
+    }
+
+    public String getUserHomeInfoTelecomMobileNumber()
+    {
+        return userHomeInfoTelecomMobileNumber;
+    }
+
+    public void setUserHomeInfoTelecomMobileNumber(
+            String userHomeInfoTelecomMobileNumber)
+    {
+        this.userHomeInfoTelecomMobileNumber = userHomeInfoTelecomMobileNumber;
+    }
+
+    public String getUserHomeInfoTelecomPagerComment()
+    {
+        return userHomeInfoTelecomPagerComment;
+    }
+
+    public void setUserHomeInfoTelecomPagerComment(
+            String userHomeInfoTelecomPagerComment)
+    {
+        this.userHomeInfoTelecomPagerComment = userHomeInfoTelecomPagerComment;
+    }
+
+    public String getUserHomeInfoTelecomPagerExt()
+    {
+        return userHomeInfoTelecomPagerExt;
+    }
+
+    public void setUserHomeInfoTelecomPagerExt(
+            String userHomeInfoTelecomPagerExt)
+    {
+        this.userHomeInfoTelecomPagerExt = userHomeInfoTelecomPagerExt;
+    }
+
+    public String getUserHomeInfoTelecomPagerIntcode()
+    {
+        return userHomeInfoTelecomPagerIntcode;
+    }
+
+    public void setUserHomeInfoTelecomPagerIntcode(
+            String userHomeInfoTelecomPagerIntcode)
+    {
+        this.userHomeInfoTelecomPagerIntcode = userHomeInfoTelecomPagerIntcode;
+    }
+
+    public String getUserHomeInfoTelecomPagerLoccode()
+    {
+        return userHomeInfoTelecomPagerLoccode;
+    }
+
+    public void setUserHomeInfoTelecomPagerLoccode(
+            String userHomeInfoTelecomPagerLoccode)
+    {
+        this.userHomeInfoTelecomPagerLoccode = userHomeInfoTelecomPagerLoccode;
+    }
+
+    public String getUserHomeInfoTelecomPagerNumber()
+    {
+        return userHomeInfoTelecomPagerNumber;
+    }
+
+    public void setUserHomeInfoTelecomPagerNumber(
+            String userHomeInfoTelecomPagerNumber)
+    {
+        this.userHomeInfoTelecomPagerNumber = userHomeInfoTelecomPagerNumber;
+    }
+
+    public String getUserHomeInfoTelecomTelephoneComment()
+    {
+        return userHomeInfoTelecomTelephoneComment;
+    }
+
+    public void setUserHomeInfoTelecomTelephoneComment(
+            String userHomeInfoTelecomTelephoneComment)
+    {
+        this.userHomeInfoTelecomTelephoneComment = userHomeInfoTelecomTelephoneComment;
+    }
+
+    public String getUserHomeInfoTelecomTelephoneExt()
+    {
+        return userHomeInfoTelecomTelephoneExt;
+    }
+
+    public void setUserHomeInfoTelecomTelephoneExt(
+            String userHomeInfoTelecomTelephoneExt)
+    {
+        this.userHomeInfoTelecomTelephoneExt = userHomeInfoTelecomTelephoneExt;
+    }
+
+    public String getUserHomeInfoTelecomTelephoneIntcode()
+    {
+        return userHomeInfoTelecomTelephoneIntcode;
+    }
+
+    public void setUserHomeInfoTelecomTelephoneIntcode(
+            String userHomeInfoTelecomTelephoneIntcode)
+    {
+        this.userHomeInfoTelecomTelephoneIntcode = userHomeInfoTelecomTelephoneIntcode;
+    }
+
+    public String getUserHomeInfoTelecomTelephoneLoccode()
+    {
+        return userHomeInfoTelecomTelephoneLoccode;
+    }
+
+    public void setUserHomeInfoTelecomTelephoneLoccode(
+            String userHomeInfoTelecomTelephoneLoccode)
+    {
+        this.userHomeInfoTelecomTelephoneLoccode = userHomeInfoTelecomTelephoneLoccode;
+    }
+
+    public String getUserHomeInfoTelecomTelephoneNumber()
+    {
+        return userHomeInfoTelecomTelephoneNumber;
+    }
+
+    public void setUserHomeInfoTelecomTelephoneNumber(
+            String userHomeInfoTelecomTelephoneNumber)
+    {
+        this.userHomeInfoTelecomTelephoneNumber = userHomeInfoTelecomTelephoneNumber;
+    }
+
+    public String getUserJobtitle()
+    {
+        return userJobtitle;
+    }
+
+    public void setUserJobtitle(String userJobtitle)
+    {
+        this.userJobtitle = userJobtitle;
+    }
+
+    public String getUserName()
+    {
+        return userName;
+    }
+
+    public void setUserName(String userName)
+    {
+        this.userName = userName;
+    }
+
+    public String getUserNameFamily()
+    {
+        return userNameFamily;
+    }
+
+    public void setUserNameFamily(String userNameFamily)
+    {
+        this.userNameFamily = userNameFamily;
+    }
+
+    public String getUserNameGiven()
+    {
+        return userNameGiven;
+    }
+
+    public void setUserNameGiven(String userNameGiven)
+    {
+        this.userNameGiven = userNameGiven;
+    }
+
+    public String getUserNameMiddle()
+    {
+        return userNameMiddle;
+    }
+
+    public void setUserNameMiddle(String userNameMiddle)
+    {
+        this.userNameMiddle = userNameMiddle;
+    }
+
+    public String getUserNameNickName()
+    {
+        return userNameNickName;
+    }
+
+    public void setUserNameNickName(String userNameNickName)
+    {
+        this.userNameNickName = userNameNickName;
+    }
+
+    public String getUserNamePrefix()
+    {
+        return userNamePrefix;
+    }
+
+    public void setUserNamePrefix(String userNamePrefix)
+    {
+        this.userNamePrefix = userNamePrefix;
+    }
+
+    public String getUserNameSuffix()
+    {
+        return userNameSuffix;
+    }
+
+    public void setUserNameSuffix(String userNameSuffix)
+    {
+        this.userNameSuffix = userNameSuffix;
+    }
+
+    public String getVerifyPassword()
+    {
+        return verifyPassword;
+    }
+
+    public void setVerifyPassword(String verifyPassword)
+    {
+        this.verifyPassword = verifyPassword;
+    }
+
+    public String initialize()
+    {
+        return null;
+    }
+
+    public String prerender()
+    {
+        return null;
+    }
+
+    @TakeOver(type = TakeOverType.NEVER)
+    public String doFinish()
+    {
+        try
+        {
+            getUserRegistrationService().register(this);
+            if (UserRegistrationUtil.getBoolean(PALAdminConstants.SEND_MAIL))
+            {
+                FacesMessageUtil.addInfoMessage("success.check_your_email");
+            }
+            else
+            {
+                FacesMessageUtil.addInfoMessage("success.login_above");
+            }
+        }
+        catch (CommonException e)
+        {
+            FacesMessageUtil.addErrorMessage(e.getMessageId());
+            logger.log("EPA0001", new Object[] { this.toString() }, e);
+
+        }
+        return null;
+    }
+}


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

Added: pal-admin/trunk/src/main/resources/PAMessages.properties
===================================================================
--- pal-admin/trunk/src/main/resources/PAMessages.properties	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/resources/PAMessages.properties	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1 @@
+EPA0001=Could not register a user.
\ No newline at end of file


Property changes on: pal-admin/trunk/src/main/resources/PAMessages.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: pal-admin/trunk/src/main/resources/appMessages.properties
===================================================================
--- pal-admin/trunk/src/main/resources/appMessages.properties	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/resources/appMessages.properties	2007-05-20 12:21:48 UTC (rev 152)
@@ -65,3 +65,10 @@
 
 failed.to.get.users=Failed to load users.
 
+error.lacking.password=You must enter a password. 
+error.userid_already_exists=Requested User ID already exists.  Please select another User Id.
+error.email_already_exists=The requested email address is already being used in the system.  If you already have an account, consider using the forgotten password portlet to retreive your password.
+error.failed_to_add=Failed to add user.
+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.

Modified: pal-admin/trunk/src/main/resources/appMessages_ja.properties
===================================================================
--- pal-admin/trunk/src/main/resources/appMessages_ja.properties	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/resources/appMessages_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
@@ -1 +1,9 @@
+error.lacking.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+error.userid_already_exists=\u8981\u6c42\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fcID\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u5225\u306e\u30e6\u30fc\u30b6\u30fcID\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+error.email_already_exists=\u8981\u6c42\u3055\u308c\u305f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u65e2\u306b\u30b7\u30b9\u30c6\u30e0\u3067\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u65e2\u306b\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u6240\u6709\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u30d1\u30b9\u30ef\u30fc\u30c9\u78ba\u8a8d\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8\u306e\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+error.two_passwords_do_not_match=\uff12\u3064\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002\u518d\u5ea6\u3001\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+error.failed_to_add=\u30e6\u30fc\u30b6\u30fc\u306e\u8ffd\u52a0\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
+success.login_above=\u30e6\u30fc\u30b6\u30fc\u767b\u9332\u30d7\u30ed\u30bb\u30b9\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002\u30ed\u30b0\u30a4\u30f3\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+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
 

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label.properties	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,75 @@
+userName= Username
+userBdate= Birthday
+userGender= Gender
+userEmployer= Employer
+userDepartment= Department
+userJobtitle= Job Title
+userNamePrefix= Title
+userNameGiven= Given Name
+userNameFamily= Family Name
+userNameMiddle= Middle Name
+userNameSuffix= Suffix
+userNameNickName= Nick Name
+userHomeInfoPostalName= Postal Name
+userHomeInfoPostalStreet= Street Address
+userHomeInfoPostalCity= City 
+userHomeInfoPostalStateprov= State
+userHomeInfoPostalPostalcode= Zip 
+userHomeInfoPostalCountry= Country 
+userHomeInfoPostalOrganization= Organization
+userHomeInfoTelecomTelephoneIntcode= Home International Code
+userHomeInfoTelecomTelephoneLoccode= Home Phone Area Code
+userHomeInfoTelecomTelephoneNumber= Home Phone Number
+userHomeInfoTelecomTelephoneExt= Home Phone Extension
+userHomeInfoTelecomTelephoneComment= Home Phone Comment
+userHomeInfoTelecomFaxIntcode= Home Fax International Code
+userHomeInfoTelecomFaxLoccode= Home Fax Area Code
+userHomeInfoTelecomFaxNumber= Home Fax Number
+userHomeInfoTelecomFaxExt= Home Fax Extension
+userHomeInfoTelecomFaxComment= Home Fax Comments
+userHomeInfoTelecomMobileIntcode= Home Mobile International Coe
+userHomeInfoTelecomMobileLoccode= Home Mobile Area Code
+userHomeInfoTelecomMobileNumber= Home Mobile Number
+userHomeInfoTelecomMobileExt= Home Mobile Extension
+userHomeInfoTelecomMobileComment= Home Mobile Comments
+userHomeInfoTelecomPagerIntcode= Home Pager International Code
+userHomeInfoTelecomPagerLoccode= Home Pager Area Code
+userHomeInfoTelecomPagerNumber= Home Pager Number
+userHomeInfoTelecomPagerExt= Home Pager Extension
+userHomeInfoTelecomPagerComment= Home Pager Comment
+userHomeInfoOnlineEmail= Home Email
+userHomeInfoOnlineUri= Home URL
+userBusinessInfoPostalName= Business Postal Name
+userBusinessInfoPostalStreet= Business  Street Address
+userBusinessInfoPostalCity= Business City
+userBusinessInfoPostalStateprov= Business State
+userBusinessInfoPostalPostalcode= Business Zip
+userBusinessInfoPostalCountry= Business Country
+userBusinessInfoPostalOrganization= Business Name
+userBusinessInfoTelecomTelephoneIntcode= Business Telephone International Code
+userBusinessInfoTelecomTelephoneLoccode= Business Telephone Area Code
+userBusinessInfoTelecomTelephoneNumber= Business Telephone Number
+userBusinessInfoTelecomTelephoneExt= Business Telephone Extension 
+userBusinessInfoTelecomTelephoneComment= Business Telephone Comment
+userBusinessInfoTelecomFaxIntcode= Business Fax International Code
+userBusinessInfoTelecomFaxLoccode= Business Fax Area Code
+userBusinessInfoTelecomFaxNumber= Business Fax Number
+userBusinessInfoTelecomFaxExt= Business Fax Extension
+userBusinessInfoTelecomFaxComment= Business Fax Comment
+userBusinessInfoTelecomMobileIntcode= Business Mobile International Code
+userBusinessInfoTelecomMobileLoccode= Business Mobile Area Code
+userBusinessInfoTelecomMobileNumber= Business Mobile Number
+userBusinessInfoTelecomMobileExt= Business Mobile Extension
+userBusinessInfoTelecomMobileComment= Business Mobile Comment
+userBusinessInfoTelecomPagerIntcode= Business Pager International Code
+userBusinessInfoTelecomPagerLoccode= Business Pager Area Code
+userBusinessInfoTelecomPagerNumber= Business Pager Number
+userBusinessInfoTelecomPagerExt= Business Pager Extension
+userBusinessInfoTelecomPagerComment= Business Page Comment
+userBusinessInfoOnlineEmail= Business Email
+userBusinessInfoOnlineUri= Business Url
+password=Password
+verifyPassword=Verify Password
+email=Email
+
+email.subject.registration=Registration Confirmation
\ No newline at end of file


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

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/registration/label_ja.properties	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,80 @@
+# 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
+userEmployer= \u96c7\u7528\u8005
+userDepartment= \u90e8\u9580 
+userJobtitle= \u4ed5\u4e8b\u306e\u80a9\u66f8\u304d
+userNamePrefix= \u656c\u79f0(\u524d\u306b\u4ed8\u3051\u308b)
+userNameGiven= \u540d\u524d(\u540d)
+userNameFamily= \u540d\u524d(\u59d3)
+userNameMiddle= \u30df\u30c9\u30eb\u30cd\u30fc\u30e0
+userNameSuffix= \u656c\u79f0(\u5f8c\u306b\u4ed8\u3051\u308b)
+userNameNickName= \u30cb\u30c3\u30af\u30cd\u30fc\u30e0
+userHomeInfoPostalName= \u4f4f\u6240
+userHomeInfoPostalStreet= \u901a\u308a\u30fb\u756a\u5730
+userHomeInfoPostalCity= \u90fd\u5e02 
+userHomeInfoPostalStateprov= \u5dde/\u770c
+userHomeInfoPostalPostalcode= \u90f5\u4fbf\u756a\u53f7 
+userHomeInfoPostalCountry= \u56fd 
+userHomeInfoPostalOrganization= \u7d44\u7e54
+userHomeInfoTelecomTelephoneIntcode= \u81ea\u5b85\u7528\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userHomeInfoTelecomTelephoneLoccode= \u81ea\u5b85\u7528\u306e\u5e02\u5916\u5c40\u756a
+userHomeInfoTelecomTelephoneNumber= \u81ea\u5b85\u7528\u306e\u96fb\u8a71\u756a\u53f7
+userHomeInfoTelecomTelephoneExt= \u81ea\u5b85\u7528\u306e\u5916\u7dda\u756a\u53f7
+userHomeInfoTelecomTelephoneComment= \u81ea\u5b85\u7528\u306e\u96fb\u8a71\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userHomeInfoTelecomFaxIntcode= \u81ea\u5b85\u7528\u306eFAX\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userHomeInfoTelecomFaxLoccode= \u81ea\u5b85\u7528\u306eFAX\u306e\u5e02\u5916\u5c40\u756a
+userHomeInfoTelecomFaxNumber= \u81ea\u5b85\u7528\u306eFAX\u306e\u96fb\u8a71\u756a\u53f7
+userHomeInfoTelecomFaxExt= \u81ea\u5b85\u7528\u306eFAX\u306e\u5916\u7dda\u756a\u53f7
+userHomeInfoTelecomFaxComment= \u81ea\u5b85\u7528\u306eFAX\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userHomeInfoTelecomMobileIntcode= \u81ea\u5b85\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userHomeInfoTelecomMobileLoccode= \u81ea\u5b85\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u5e02\u5916\u5c40\u756a
+userHomeInfoTelecomMobileNumber= \u81ea\u5b85\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u96fb\u8a71\u756a\u53f7
+userHomeInfoTelecomMobileExt= \u81ea\u5b85\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u5916\u7dda\u756a\u53f7
+userHomeInfoTelecomMobileComment= \u81ea\u5b85\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userHomeInfoTelecomPagerIntcode= \u81ea\u5b85\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userHomeInfoTelecomPagerLoccode= \u81ea\u5b85\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u5e02\u5916\u5c40\u756a
+userHomeInfoTelecomPagerNumber= \u81ea\u5b85\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u96fb\u8a71\u756a\u53f7
+userHomeInfoTelecomPagerExt= \u81ea\u5b85\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u5916\u7dda\u756a\u53f7
+userHomeInfoTelecomPagerComment= \u81ea\u5b85\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userHomeInfoOnlineEmail= \u81ea\u5b85\u7528\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9
+userHomeInfoOnlineUri= \u81ea\u5b85\u7528\u306eURL
+userBusinessInfoPostalName= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240
+userBusinessInfoPostalStreet= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240\u306e\u901a\u308a\u30fb\u756a\u5730
+userBusinessInfoPostalCity= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240\u306e\u90fd\u5e02
+userBusinessInfoPostalStateprov= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240\u306e\u5dde/\u770c
+userBusinessInfoPostalPostalcode= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240\u306e\u90f5\u4fbf\u773c\u53f7
+userBusinessInfoPostalCountry= \u4ed5\u4e8b\u7528\u306e\u4f4f\u6240\u306e\u56fd
+userBusinessInfoPostalOrganization= \u4ed5\u4e8b\u7528\u306e\u7d44\u7e54
+userBusinessInfoTelecomTelephoneIntcode= \u4ed5\u4e8b\u7528\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userBusinessInfoTelecomTelephoneLoccode= \u4ed5\u4e8b\u7528\u306e\u5e02\u5916\u5c40\u756a
+userBusinessInfoTelecomTelephoneNumber= \u4ed5\u4e8b\u7528\u306e\u96fb\u8a71\u756a\u53f7
+userBusinessInfoTelecomTelephoneExt= \u4ed5\u4e8b\u7528\u306e\u5916\u7dda\u756a\u53f7 
+userBusinessInfoTelecomTelephoneComment= \u4ed5\u4e8b\u7528\u306e\u96fb\u8a71\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userBusinessInfoTelecomFaxIntcode= \u4ed5\u4e8b\u7528\u306eFAX\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userBusinessInfoTelecomFaxLoccode= \u4ed5\u4e8b\u7528\u306eFAX\u306e\u5e02\u5916\u5c40\u756a
+userBusinessInfoTelecomFaxNumber= \u4ed5\u4e8b\u7528\u306eFAX\u306e\u96fb\u8a71\u756a\u53f7
+userBusinessInfoTelecomFaxExt= \u4ed5\u4e8b\u7528\u306eFAX\u306e\u5916\u7dda\u756a\u53f7
+userBusinessInfoTelecomFaxComment= \u4ed5\u4e8b\u7528\u306eFAX\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userBusinessInfoTelecomMobileIntcode= \u4ed5\u4e8b\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userBusinessInfoTelecomMobileLoccode= \u4ed5\u4e8b\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u5e02\u5916\u5c40\u756a
+userBusinessInfoTelecomMobileNumber= \u4ed5\u4e8b\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u96fb\u8a71\u756a\u53f7
+userBusinessInfoTelecomMobileExt= \u4ed5\u4e8b\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306e\u5916\u7dda\u756a\u53f7
+userBusinessInfoTelecomMobileComment= \u4ed5\u4e8b\u7528\u306e\u643a\u5e2f\u96fb\u8a71\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userBusinessInfoTelecomPagerIntcode= \u4ed5\u4e8b\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u56fd\u969b\u30b3\u30fc\u30c9
+userBusinessInfoTelecomPagerLoccode= \u4ed5\u4e8b\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u5e02\u5916\u5c40\u756a
+userBusinessInfoTelecomPagerNumber= \u4ed5\u4e8b\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u96fb\u8a71\u756a\u53f7
+userBusinessInfoTelecomPagerExt= \u4ed5\u4e8b\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306e\u5916\u7dda\u756a\u53f7
+userBusinessInfoTelecomPagerComment= \u4ed5\u4e8b\u7528\u306e\u30dd\u30b1\u30d9\u30eb\u306b\u95a2\u3059\u308b\u30b3\u30e1\u30f3\u30c8
+userBusinessInfoOnlineEmail= \u4ed5\u4e8b\u7528\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9
+userBusinessInfoOnlineUri= \u4ed5\u4e8b\u7528\u306eURL
+password=\u30d1\u30b9\u30ef\u30fc\u30c9
+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


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

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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/portlet.xml	2007-05-20 12:21:48 UTC (rev 152)
@@ -34,18 +34,18 @@
       <name>view-page</name>
       <value>/view/user/userList.html</value>
     </init-param>
-<!--    <init-param>
+    <!--    <init-param>
             <name>edit-page</name>
             <value></value>
         </init-param> -->
     <supports>
       <mime-type>text/html</mime-type>
       <portlet-mode>VIEW</portlet-mode>
-<!--        <portlet-mode>EDIT</portlet-mode> -->
+      <!--        <portlet-mode>EDIT</portlet-mode> -->
     </supports>
     <supported-locale>en</supported-locale>
     <supported-locale>ja</supported-locale>
-<!-- resource-bundle></resource-bundle -->
+    <!-- resource-bundle></resource-bundle -->
     <portlet-info>
       <title>User Management</title>
       <short-title>Management</short-title>
@@ -71,22 +71,95 @@
       <name>view-page</name>
       <value>/view/portletmanager/portletList.html</value>
     </init-param>
-<!--    <init-param>
+    <!--    <init-param>
             <name>edit-page</name>
             <value></value>
         </init-param> -->
     <supports>
       <mime-type>text/html</mime-type>
       <portlet-mode>VIEW</portlet-mode>
-<!--        <portlet-mode>EDIT</portlet-mode> -->
+      <!--        <portlet-mode>EDIT</portlet-mode> -->
     </supports>
     <supported-locale>en</supported-locale>
     <supported-locale>ja</supported-locale>
-<!-- resource-bundle></resource-bundle -->
+    <!-- resource-bundle></resource-bundle -->
     <portlet-info>
       <title>Portlet Management</title>
       <short-title>Management</short-title>
       <keywords>Portlet,Management</keywords>
     </portlet-info>
   </portlet>
+  <portlet>
+    <description>Provides users with the ability register as a new user with the portal.</description>
+    <description xml:lang="ja">ユーザーにポータルの新規登録する機能を提供します。</description>
+    <portlet-name>UserRegistrationPortlet</portlet-name>
+    <display-name>User Registration</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.UserRegistrationFilter,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/userRegistration.html</value>
+    </init-param>
+    <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>
+    </init-param>
+    <init-param>
+      <description>This option will force email address to be system wide unique</description>
+      <name>jp.sf.pal.admin.ForceUniqueEmail</name>
+      <value>true</value>
+    </init-param>
+    <init-param>
+      <description>This option will use the email address as the username</description>
+      <name>jp.sf.pal.admin.ForceUseEmailAsUsername</name>
+      <value>false</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>userRegistrationEmail.vm</value>
+    </init-param>
+    <init-param>
+      <description>Profiling rules to be assigned at registration.</description>
+      <name>jp.sf.pal.admin.RuleNames</name>
+      <value>page</value>
+    </init-param>
+    <init-param>
+      <description>Profiling rules to be assigned at registration.</description>
+      <name>jp.sf.pal.admin.RuleValues</name>
+      <value>j2</value>
+    </init-param>
+    <init-param>
+      <description>Profiling rules to be assigned at registration.</description>
+      <name>jp.sf.pal.admin.SendMail</name>
+      <value>true</value>
+    </init-param>
+    <expiration-cache>-1</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>
+    <portlet-info>
+      <title>User Registration</title>
+      <short-title>Registration</short-title>
+      <keywords>Registration</keywords>
+    </portlet-info>
+  </portlet>
 </portlet-app>

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/forgottenPasswdEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,12 @@
+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")}
+
+Thanks,  
+
+---
+PAL Portal
+http://sourceforge.jp/projects/pal/
+

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/forgottenPasswdEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,12 @@
+こんにちは、$!{map.get("user.name.family")} $!{map.get("user.name.given")} さん
+
+ご利用のアカウントに関する新規パスワード作成依頼を受け付けました。
+アカウントユーザー名: $!{map.get("username")}
+新規パスワード: $!{map.get("password")}
+
+以上をよろしくお願いいたします。
+
+---
+PAL ポータル
+http://sourceforge.jp/projects/pal/
+

Added: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/userRegistrationEmail.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/userRegistrationEmail.vm	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/html/ja/userRegistrationEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,17 @@
+こんにちは、$!{map.get("user.name.family")} $!{map.get("user.name.given")} さん
+
+PAL ポータルへようこそ!
+登録していただきありがとうございます。PAL ポータルは JSR 168 に
+合格したコンポーネントベースのポータルコンテナシステムです。
+
+ユーザー名: $!{map.get("user.name")}
+パスワード: $!{map.get("password")}
+
+パスワードは、ログインして変更できます。
+
+以上をよろしくお願いいたします。
+
+---
+PAL ポータル
+http://sourceforge.jp/projects/pal/
+

Added: pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm
===================================================================
--- pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,16 @@
+Hello $!{map.get("user.name.given")} $!{map.get("user.name.family")}:
+
+Welcome to PAL Portal! 
+Thanks you for registering.  PAL Portal is a powerful component based
+portlet container system conforming to JSR-168.
+
+Your username is: $!{map.get("user.name")}
+Your password is: $!{map.get("password")}
+
+You may change your password online. 
+
+---
+PAL Portal
+http://sourceforge.jp/projects/pal/
+
+

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/forgottenPasswd.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,40 @@
+#*
+  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>

Added: 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:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/WEB-INF/template/userreg/userRegistration.vm	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,61 @@
+#*
+  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/userRegistration.html
===================================================================
--- pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html	2007-05-20 12:14:24 UTC (rev 151)
+++ pal-admin/trunk/src/main/webapp/view/registration/userRegistration.html	2007-05-20 12:21:48 UTC (rev 152)
@@ -0,0 +1,819 @@
+<?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="UserRegistrationForm">
+      <div>
+        <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+      </div>
+<!-- content: BEGIN -->
+      <table>
+        <!-- Required userBusinessInfoOnlineEmail -->
+        <tr>
+          <td>
+            <!-- label id="userBusinessInfoOnlineEmailLabel" for="userBusinessInfoOnlineEmail" class="portlet-form-label">userBusinessInfoOnlineEmail</label -->
+            <label id="emailLabel" for="userBusinessInfoOnlineEmail" class="portlet-form-label">userBusinessInfoOnlineEmail</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoOnlineEmail" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoOnlineEmailMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <!-- Required userName -->
+        <tr>
+          <td>
+            <label id="userNameLabel" for="userName" class="portlet-form-label">userName</label>
+          </td>
+          <td>
+            <input id="userName" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNameFamilyLabel" for="userNameFamily" class="portlet-form-label">userNameFamily</label>
+          </td>
+          <td>
+            <input id="userNameFamily" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameFamilyMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNameGivenLabel" for="userNameGiven" class="portlet-form-label">userNameGiven</label>
+          </td>
+          <td>
+            <input id="userNameGiven" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameGivenMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+<!-- 
+        <tr>
+          <td>
+            <label id="passwordLabel" for="password" class="portlet-form-label">password</label>
+          </td>
+          <td>
+            <input id="password" type="password" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="passwordMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="verifyPasswordLabel" for="verifyPassword" class="portlet-form-label">userName</label>
+          </td>
+          <td>
+            <input id="verifyPassword" type="password" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="verifyPasswordMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBdateLabel" for="userBdate" class="portlet-form-label">userBdate</label>
+          </td>
+          <td>
+            <input id="userBdate" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBdateMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userGenderLabel" for="userGender" class="portlet-form-label">userGender</label>
+          </td>
+          <td>
+            <input id="userGender" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userGenderMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userEmployerLabel" for="userEmployer" class="portlet-form-label">userEmployer</label>
+          </td>
+          <td>
+            <input id="userEmployer" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userEmployerMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userDepartmentLabel" for="userDepartment" class="portlet-form-label">userDepartment</label>
+          </td>
+          <td>
+            <input id="userDepartment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userDepartmentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userJobtitleLabel" for="userJobtitle" class="portlet-form-label">userJobtitle</label>
+          </td>
+          <td>
+            <input id="userJobtitle" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userJobtitleMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNamePrefixLabel" for="userNamePrefix" class="portlet-form-label">userNamePrefix</label>
+          </td>
+          <td>
+            <input id="userNamePrefix" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNamePrefixMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNameMiddleLabel" for="userNameMiddle" class="portlet-form-label">userNameMiddle</label>
+          </td>
+          <td>
+            <input id="userNameMiddle" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameMiddleMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNameSuffixLabel" for="userNameSuffix" class="portlet-form-label">userNameSuffix</label>
+          </td>
+          <td>
+            <input id="userNameSuffix" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameSuffixMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userNameNickNameLabel" for="userNameNickName" class="portlet-form-label">userNameNickName</label>
+          </td>
+          <td>
+            <input id="userNameNickName" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userNameNickNameMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalNameLabel" for="userHomeInfoPostalName" class="portlet-form-label">userHomeInfoPostalName</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalName" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalNameMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalStreetLabel" for="userHomeInfoPostalStreet" class="portlet-form-label">userHomeInfoPostalStreet</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalStreet" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalStreetMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalCityLabel" for="userHomeInfoPostalCity" class="portlet-form-label">userHomeInfoPostalCity</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalCity" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalCityMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalStateprovLabel" for="userHomeInfoPostalStateprov" class="portlet-form-label">userHomeInfoPostalStateprov</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalStateprov" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalStateprovMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalPostalcodeLabel" for="userHomeInfoPostalPostalcode" class="portlet-form-label">userHomeInfoPostalPostalcode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalPostalcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalPostalcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalCountryLabel" for="userHomeInfoPostalCountry" class="portlet-form-label">userHomeInfoPostalCountry</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalCountry" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalCountryMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoPostalOrganizationLabel" for="userHomeInfoPostalOrganization" class="portlet-form-label">userHomeInfoPostalOrganization</label>
+          </td>
+          <td>
+            <input id="userHomeInfoPostalOrganization" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoPostalOrganizationMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomTelephoneIntcodeLabel" for="userHomeInfoTelecomTelephoneIntcode" class="portlet-form-label">userHomeInfoTelecomTelephoneIntcode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomTelephoneIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomTelephoneIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomTelephoneLoccodeLabel" for="userHomeInfoTelecomTelephoneLoccode" class="portlet-form-label">userHomeInfoTelecomTelephoneLoccode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomTelephoneLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomTelephoneLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomTelephoneNumberLabel" for="userHomeInfoTelecomTelephoneNumber" class="portlet-form-label">userHomeInfoTelecomTelephoneNumber</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomTelephoneNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomTelephoneNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomTelephoneExtLabel" for="userHomeInfoTelecomTelephoneExt" class="portlet-form-label">userHomeInfoTelecomTelephoneExt</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomTelephoneExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomTelephoneExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomTelephoneCommentLabel" for="userHomeInfoTelecomTelephoneComment" class="portlet-form-label">userHomeInfoTelecomTelephoneComment</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomTelephoneComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomTelephoneCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomFaxIntcodeLabel" for="userHomeInfoTelecomFaxIntcode" class="portlet-form-label">userHomeInfoTelecomFaxIntcode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomFaxIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomFaxIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomFaxLoccodeLabel" for="userHomeInfoTelecomFaxLoccode" class="portlet-form-label">userHomeInfoTelecomFaxLoccode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomFaxLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomFaxLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomFaxNumberLabel" for="userHomeInfoTelecomFaxNumber" class="portlet-form-label">userHomeInfoTelecomFaxNumber</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomFaxNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomFaxNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomFaxExtLabel" for="userHomeInfoTelecomFaxExt" class="portlet-form-label">userHomeInfoTelecomFaxExt</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomFaxExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomFaxExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomFaxCommentLabel" for="userHomeInfoTelecomFaxComment" class="portlet-form-label">userHomeInfoTelecomFaxComment</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomFaxComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomFaxCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomMobileIntcodeLabel" for="userHomeInfoTelecomMobileIntcode" class="portlet-form-label">userHomeInfoTelecomMobileIntcode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomMobileIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomMobileIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomMobileLoccodeLabel" for="userHomeInfoTelecomMobileLoccode" class="portlet-form-label">userHomeInfoTelecomMobileLoccode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomMobileLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomMobileLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomMobileNumberLabel" for="userHomeInfoTelecomMobileNumber" class="portlet-form-label">userHomeInfoTelecomMobileNumber</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomMobileNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomMobileNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomMobileExtLabel" for="userHomeInfoTelecomMobileExt" class="portlet-form-label">userHomeInfoTelecomMobileExt</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomMobileExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomMobileExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomMobileCommentLabel" for="userHomeInfoTelecomMobileComment" class="portlet-form-label">userHomeInfoTelecomMobileComment</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomMobileComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomMobileCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomPagerIntcodeLabel" for="userHomeInfoTelecomPagerIntcode" class="portlet-form-label">userHomeInfoTelecomPagerIntcode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomPagerIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomPagerIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomPagerLoccodeLabel" for="userHomeInfoTelecomPagerLoccode" class="portlet-form-label">userHomeInfoTelecomPagerLoccode</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomPagerLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomPagerLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomPagerNumberLabel" for="userHomeInfoTelecomPagerNumber" class="portlet-form-label">userHomeInfoTelecomPagerNumber</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomPagerNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomPagerNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomPagerExtLabel" for="userHomeInfoTelecomPagerExt" class="portlet-form-label">userHomeInfoTelecomPagerExt</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomPagerExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomPagerExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoTelecomPagerCommentLabel" for="userHomeInfoTelecomPagerComment" class="portlet-form-label">userHomeInfoTelecomPagerComment</label>
+          </td>
+          <td>
+            <input id="userHomeInfoTelecomPagerComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoTelecomPagerCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoOnlineEmailLabel" for="userHomeInfoOnlineEmail" class="portlet-form-label">userHomeInfoOnlineEmail</label>
+          </td>
+          <td>
+            <input id="userHomeInfoOnlineEmail" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoOnlineEmailMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userHomeInfoOnlineUriLabel" for="userHomeInfoOnlineUri" class="portlet-form-label">userHomeInfoOnlineUri</label>
+          </td>
+          <td>
+            <input id="userHomeInfoOnlineUri" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userHomeInfoOnlineUriMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalNameLabel" for="userBusinessInfoPostalName" class="portlet-form-label">userBusinessInfoPostalName</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalName" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalNameMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalStreetLabel" for="userBusinessInfoPostalStreet" class="portlet-form-label">userBusinessInfoPostalStreet</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalStreet" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalStreetMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalCityLabel" for="userBusinessInfoPostalCity" class="portlet-form-label">userBusinessInfoPostalCity</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalCity" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalCityMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalStateprovLabel" for="userBusinessInfoPostalStateprov" class="portlet-form-label">userBusinessInfoPostalStateprov</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalStateprov" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalStateprovMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalPostalcodeLabel" for="userBusinessInfoPostalPostalcode" class="portlet-form-label">userBusinessInfoPostalPostalcode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalPostalcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalPostalcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalCountryLabel" for="userBusinessInfoPostalCountry" class="portlet-form-label">userBusinessInfoPostalCountry</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalCountry" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalCountryMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoPostalOrganizationLabel" for="userBusinessInfoPostalOrganization" class="portlet-form-label">userBusinessInfoPostalOrganization</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoPostalOrganization" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoPostalOrganizationMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomTelephoneIntcodeLabel" for="userBusinessInfoTelecomTelephoneIntcode" class="portlet-form-label">userBusinessInfoTelecomTelephoneIntcode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomTelephoneIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomTelephoneIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomTelephoneLoccodeLabel" for="userBusinessInfoTelecomTelephoneLoccode" class="portlet-form-label">userBusinessInfoTelecomTelephoneLoccode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomTelephoneLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomTelephoneLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomTelephoneNumberLabel" for="userBusinessInfoTelecomTelephoneNumber" class="portlet-form-label">userBusinessInfoTelecomTelephoneNumber</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomTelephoneNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomTelephoneNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomTelephoneExtLabel" for="userBusinessInfoTelecomTelephoneExt" class="portlet-form-label">userBusinessInfoTelecomTelephoneExt</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomTelephoneExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomTelephoneExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomTelephoneCommentLabel" for="userBusinessInfoTelecomTelephoneComment" class="portlet-form-label">userBusinessInfoTelecomTelephoneComment</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomTelephoneComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomTelephoneCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomFaxIntcodeLabel" for="userBusinessInfoTelecomFaxIntcode" class="portlet-form-label">userBusinessInfoTelecomFaxIntcode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomFaxIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomFaxIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomFaxLoccodeLabel" for="userBusinessInfoTelecomFaxLoccode" class="portlet-form-label">userBusinessInfoTelecomFaxLoccode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomFaxLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomFaxLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomFaxNumberLabel" for="userBusinessInfoTelecomFaxNumber" class="portlet-form-label">userBusinessInfoTelecomFaxNumber</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomFaxNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomFaxNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomFaxExtLabel" for="userBusinessInfoTelecomFaxExt" class="portlet-form-label">userBusinessInfoTelecomFaxExt</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomFaxExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomFaxExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomFaxCommentLabel" for="userBusinessInfoTelecomFaxComment" class="portlet-form-label">userBusinessInfoTelecomFaxComment</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomFaxComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomFaxCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomMobileIntcodeLabel" for="userBusinessInfoTelecomMobileIntcode" class="portlet-form-label">userBusinessInfoTelecomMobileIntcode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomMobileIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomMobileIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomMobileLoccodeLabel" for="userBusinessInfoTelecomMobileLoccode" class="portlet-form-label">userBusinessInfoTelecomMobileLoccode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomMobileLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomMobileLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomMobileNumberLabel" for="userBusinessInfoTelecomMobileNumber" class="portlet-form-label">userBusinessInfoTelecomMobileNumber</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomMobileNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomMobileNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomMobileExtLabel" for="userBusinessInfoTelecomMobileExt" class="portlet-form-label">userBusinessInfoTelecomMobileExt</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomMobileExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomMobileExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomMobileCommentLabel" for="userBusinessInfoTelecomMobileComment" class="portlet-form-label">userBusinessInfoTelecomMobileComment</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomMobileComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomMobileCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomPagerIntcodeLabel" for="userBusinessInfoTelecomPagerIntcode" class="portlet-form-label">userBusinessInfoTelecomPagerIntcode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomPagerIntcode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomPagerIntcodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomPagerLoccodeLabel" for="userBusinessInfoTelecomPagerLoccode" class="portlet-form-label">userBusinessInfoTelecomPagerLoccode</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomPagerLoccode" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomPagerLoccodeMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomPagerNumberLabel" for="userBusinessInfoTelecomPagerNumber" class="portlet-form-label">userBusinessInfoTelecomPagerNumber</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomPagerNumber" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomPagerNumberMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomPagerExtLabel" for="userBusinessInfoTelecomPagerExt" class="portlet-form-label">userBusinessInfoTelecomPagerExt</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomPagerExt" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomPagerExtMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoTelecomPagerCommentLabel" for="userBusinessInfoTelecomPagerComment" class="portlet-form-label">userBusinessInfoTelecomPagerComment</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoTelecomPagerComment" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoTelecomPagerCommentMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+        <tr>
+          <td>
+            <label id="userBusinessInfoOnlineUriLabel" for="userBusinessInfoOnlineUri" class="portlet-form-label">userBusinessInfoOnlineUri</label>
+          </td>
+          <td>
+            <input id="userBusinessInfoOnlineUri" type="text" class="portlet-form-input-field" size="24" />
+          </td>
+          <td>
+            <span id="userBusinessInfoOnlineUriMessage" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span>
+          </td>
+        </tr>
+ -->
+      </table>
+      <div>
+        <input type="button" id="doFinish" value="Finish" onclick="location.href='userRegistration.html'" class="portlet-form-button"/>
+      </div>
+<!-- content: END -->
+    </form>
+  </body>
+</html>


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


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