svnno****@sourc*****
svnno****@sourc*****
2007年 10月 11日 (木) 22:29:42 JST
Revision: 621 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=621 Author: shinsuke Date: 2007-10-11 22:29:41 +0900 (Thu, 11 Oct 2007) Log Message: ----------- added signup portlet. Modified Paths: -------------- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/PompeiConstants.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/dxo/CustomerDxo.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/CustomerService.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/checkout/UserInfoEditAction.java pompei/portlets/pompei-core/trunk/src/main/resources/appMessages.properties pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/portlet.xml pompei/portlets/pompei-core/trunk/src/main/webapp/view/index.html Added Paths: ----------- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/UserRegistrationFilter.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/SystemUtil.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/UserRegistrationUtil.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/AbstractUsersignupPage.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompleteAction.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompletePage.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmAction.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmPage.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditAction.java pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditPage.java pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/ pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit.properties pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit_ja.properties pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/label.properties pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/term_of_service.txt pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/email/ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/ pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupComplete.html pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupConfirm.html pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupEdit.html -------------- next part -------------- Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/PompeiConstants.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/PompeiConstants.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/PompeiConstants.java 2007-10-11 13:29:41 UTC (rev 621) @@ -2,7 +2,11 @@ import java.math.BigDecimal; +import org.apache.jetspeed.om.folder.Folder; + public class PompeiConstants { + public static final String PREFIX = "jp.sf.pal.pompei."; + public static final int DEFULAT_PAGE_SIZE = 25; public static final int DEFULAT_PAGE_RANGE_SIZE = 5; @@ -155,4 +159,78 @@ public static final BigDecimal FINISHED_ORDER_STATUS_TYPE = new BigDecimal( 3); + + public static final String DUMMY_SECRET_ANSWER = "********"; + + public static final String PAGE_MANAGER_COMPONENT = PREFIX + "PageManager"; + + public static final String PORTAL_ADMINISTRATION_COMPONENT = PREFIX + + "PortalAdministration"; + + public static final String USER_MANAGER_COMPONENT = PREFIX + "UserManager"; + + public static final String AUDIT_ACTIVITY_COMPONENT = PREFIX + + "AuditActivity"; + + public static final String USER_REGISTRATION_PARAMS = PREFIX + + "UserRegistrationParams"; + + public static final String EMAIL_TEMPLATE_LOCATION = PREFIX + + "EmailTemplateLocation"; + + public static final String DEFAULT_TEMPLATE_LOCATION = "/WEB-INF/template/userreg/"; + + public static final String EMAIL_TEMPLATE_NAME = PREFIX + + "EmailTemplateName"; + + public static final String DEFAULT_TEMPLATE_NAME = "userRegistrationEmail.vm"; + + public static final String TEMPLATE_LOCATOR = PREFIX + "TemplateLocator"; + + 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 FORCE_GENERATED_PASSWORD = PREFIX + + "ForceGeneratedPassword"; + + public static final String FORCE_USE_EMAIL_AS_USERNAME = PREFIX + + "ForceUseEmailAsUsername"; + + public static final String FORCE_UNIQUE_EMAIL = PREFIX + "ForceUniqueEmail"; + + public static final String SEND_MAIL = PREFIX + "SendMail"; + + public static final String DEFAULT_USER_TEMPLATE_FOLDER_NAME = "_template"; + + public static final String DEFAULT_USER_TEMPLATE_FOLDER = Folder.USER_FOLDER + + DEFAULT_USER_TEMPLATE_FOLDER_NAME + "/"; + + public static final String MD_ALGORITHM = "mdAlgorithm"; + + public static final String DEFAULT_MD_ALGORITHM = "MD5"; + + public static final String MD_ENCODING = "mdEncoding"; + + public static final String DEFAULT_MD_ENCODING = "UTF-8"; + + public static final String USER_NAME = "user.name"; + + public static final String USER_PASSWORD = "user.password"; + + public static final String USER_VERIFY_PASSWORD = "user.verify.password"; + + public static final String USER_BUSINESS_INFO_ONLINE_EMAIL = "user.business-info.online.email"; + + public static final String USER_SECRET_QUESTION = "user.secret.question"; + + public static final String USER_SECRET_ANSWER = "user.secret.answer"; + + public static final String EMAIL_SUBJECT_USER_REGISTRATION = "email.subject.registration"; } Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/dxo/CustomerDxo.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/dxo/CustomerDxo.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/dxo/CustomerDxo.java 2007-10-11 13:29:41 UTC (rev 621) @@ -10,21 +10,22 @@ import jp.sf.pal.pompei.web.user.checkout.CheckoutConfirmPage; import jp.sf.pal.pompei.web.user.checkout.UserAddressSelectPage; import jp.sf.pal.pompei.web.user.checkout.UserInfoEditPage; +import jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage; public interface CustomerDxo extends Serializable { - public void convert(AbstractCustomerEditPage memberConfirmPage, - AddressBook book); + public void convert(AbstractCustomerEditPage page, AddressBook book); - public void convert(AbstractCustomerEditPage customerEditPage, - Customer customer); + public void convert(AbstractCustomerEditPage page, Customer customer); - public void convert(Customer customer, - AbstractCustomerEditPage customerEditPage); + public void convert(AbstractUsersignupPage page, AddressBook book); - public void convert(AddressBook addressBook, - AbstractCustomerEditPage customerEditPage); + public void convert(AbstractUsersignupPage page, Customer customer); + public void convert(Customer customer, AbstractCustomerEditPage page); + + public void convert(AddressBook addressBook, AbstractCustomerEditPage page); + public List<Map<String, Object>> convert(List<Customer> list); public void convert(Customer customer, UserInfoEditPage page); Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/UserRegistrationFilter.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/UserRegistrationFilter.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/UserRegistrationFilter.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,284 @@ +/* + * Copyright 2005-2007 Portal Application Laboratory and the Others. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language + * governing permissions and limitations under the License. + */ +package jp.sf.pal.pompei.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.pompei.PompeiConstants; + +import org.apache.jetspeed.CommonPortletServices; +import org.apache.jetspeed.administration.PortalAdministration; +import org.apache.jetspeed.audit.AuditActivity; +import org.apache.jetspeed.locator.JetspeedTemplateLocator; +import org.apache.jetspeed.page.PageManager; +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 PageManager pageManager; + + private PortalAdministration portalAdministration; + + private UserManager userManager; + + private AuditActivity auditActivity; + + private Map<String, Object> userRegistrationParams; + + public void destroy() { + pageManager = null; + portalAdministration = null; + userManager = null; + userRegistrationParams = null; + } + + public void init(PortletFilterConfig filterConfig) throws PortletException { + PortletConfig portletConfig = filterConfig.getPortletConfig(); + PortletContext portletContext = portletConfig.getPortletContext(); + + // pageManager + pageManager = (PageManager) portletContext + .getAttribute(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT); + if (null == pageManager) { + throw new PortletException( + "Failed to find the Page Manager on portlet initialization"); + } + + // 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"); + } + + // auditActivity + auditActivity = (AuditActivity) portletContext + .getAttribute(CommonPortletServices.CPS_AUDIT_ACTIVITY); + if (auditActivity == null) { + throw new PortletException( + "Failed to find the User Manager on portlet initialization"); + } + + // user params + userRegistrationParams = new HashMap<String, Object>(); + + String templateLocation = portletConfig + .getInitParameter(PompeiConstants.EMAIL_TEMPLATE_LOCATION); + if (templateLocation == null) { + templateLocation = PompeiConstants.DEFAULT_TEMPLATE_LOCATION; + } + templateLocation = portletContext.getRealPath(templateLocation); + userRegistrationParams.put(PompeiConstants.EMAIL_TEMPLATE_LOCATION, + templateLocation); + + String templateName = portletConfig + .getInitParameter(PompeiConstants.EMAIL_TEMPLATE_NAME); + if (templateName == null) { + templateName = PompeiConstants.DEFAULT_TEMPLATE_NAME; + } + userRegistrationParams.put(PompeiConstants.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(PompeiConstants.TEMPLATE_LOCATOR, + templateLocator); + } catch (FileNotFoundException e) { + throw new PortletException("Could not start the template locator.", + e); + } + + // roles + List<String> roles = getInitParameterList(portletConfig, + PompeiConstants.ROLES); + getUserRegistrationParams().put(PompeiConstants.ROLES, roles); + + // groups + List<String> groups = getInitParameterList(portletConfig, + PompeiConstants.GROUPS); + getUserRegistrationParams().put(PompeiConstants.GROUPS, groups); + + // rules (name,value pairs) + List<String> names = getInitParameterList(portletConfig, + PompeiConstants.RULE_NAMES); + List<String> values = getInitParameterList(portletConfig, + PompeiConstants.RULE_VALUES); + Map<String, String> rules = new HashMap<String, String>(); + for (int ix = 0; ix < ((names.size() < values.size()) ? names.size() + : values.size()); ix++) { + rules.put(names.get(ix), values.get(ix)); + } + getUserRegistrationParams().put(PompeiConstants.RULES, rules); + + // user attributes ? + + Boolean forceGeneratedPasswords = Boolean + .valueOf( + portletConfig + .getInitParameter(PompeiConstants.FORCE_GENERATED_PASSWORD)) + .booleanValue(); + getUserRegistrationParams().put( + PompeiConstants.FORCE_GENERATED_PASSWORD, + forceGeneratedPasswords); + + Boolean forceEmailAsUsername = Boolean + .valueOf( + portletConfig + .getInitParameter(PompeiConstants.FORCE_USE_EMAIL_AS_USERNAME)) + .booleanValue(); + getUserRegistrationParams().put( + PompeiConstants.FORCE_USE_EMAIL_AS_USERNAME, + forceEmailAsUsername); + + Boolean forceEmailsToBeSystemUnique = Boolean.valueOf( + portletConfig + .getInitParameter(PompeiConstants.FORCE_UNIQUE_EMAIL)) + .booleanValue(); + if (forceEmailAsUsername) { + // just to be sure + forceEmailsToBeSystemUnique = Boolean.TRUE; + } + getUserRegistrationParams().put(PompeiConstants.FORCE_UNIQUE_EMAIL, + forceEmailsToBeSystemUnique); + + Boolean sendMail = Boolean.valueOf(portletConfig + .getInitParameter(PompeiConstants.SEND_MAIL)); + getUserRegistrationParams().put(PompeiConstants.SEND_MAIL, sendMail); + } + + public void processActionFilter(ActionRequest request, + ActionResponse response, PortletFilterChain chain) + throws PortletException, IOException { + request.setAttribute(PompeiConstants.PAGE_MANAGER_COMPONENT, + pageManager); + request.setAttribute(PompeiConstants.PORTAL_ADMINISTRATION_COMPONENT, + portalAdministration); + request.setAttribute(PompeiConstants.USER_MANAGER_COMPONENT, + userManager); + request.setAttribute(PompeiConstants.USER_REGISTRATION_PARAMS, + userRegistrationParams); + request.setAttribute(PompeiConstants.AUDIT_ACTIVITY_COMPONENT, + auditActivity); + + chain.processActionFilter(request, response); + } + + public void renderFilter(RenderRequest request, RenderResponse response, + PortletFilterChain chain) throws PortletException, IOException { + request.setAttribute(PompeiConstants.PAGE_MANAGER_COMPONENT, + pageManager); + request.setAttribute(PompeiConstants.PORTAL_ADMINISTRATION_COMPONENT, + portalAdministration); + request.setAttribute(PompeiConstants.USER_MANAGER_COMPONENT, + userManager); + request.setAttribute(PompeiConstants.USER_REGISTRATION_PARAMS, + userRegistrationParams); + request.setAttribute(PompeiConstants.AUDIT_ACTIVITY_COMPONENT, + auditActivity); + + chain.renderFilter(request, response); + } + + protected List<String> getInitParameterList(PortletConfig portletConfig, + String ipName) { + String temp = portletConfig.getInitParameter(ipName); + if (temp == null) { + return new ArrayList<String>(); + } + + String[] temps = temp.split("\\,"); + for (int ix = 0; ix < temps.length; ix++) { + temps[ix] = temps[ix].trim(); + } + + return Arrays.asList(temps); + } + + /** + * @return the portalAdministration + */ + public PortalAdministration getPortalAdministration() { + return portalAdministration; + } + + /** + * @param portalAdministration the portalAdministration to set + */ + public void setPortalAdministration( + PortalAdministration portalAdministration) { + this.portalAdministration = portalAdministration; + } + + /** + * @return the userManager + */ + public UserManager getUserManager() { + return userManager; + } + + /** + * @param userManager the userManager to set + */ + public void setUserManager(UserManager userManager) { + this.userManager = userManager; + } + + /** + * @return the userRegistrationParams + */ + public Map<String, Object> getUserRegistrationParams() { + return userRegistrationParams; + } + + /** + * @param userRegistrationParams the userRegistrationParams to set + */ + public void setUserRegistrationParams( + Map<String, Object> userRegistrationParams) { + this.userRegistrationParams = userRegistrationParams; + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/filter/UserRegistrationFilter.java ___________________________________________________________________ Name: svn:eol-style + native Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/CustomerService.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/CustomerService.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/CustomerService.java 2007-10-11 13:29:41 UTC (rev 621) @@ -3,7 +3,9 @@ import java.io.Serializable; import java.math.BigDecimal; import java.util.List; +import java.util.Map; +import jp.sf.pal.common.CommonException; import jp.sf.pal.pompei.exentity.AddressBook; import jp.sf.pal.pompei.exentity.Customer; import jp.sf.pal.pompei.exentity.Zone; @@ -28,6 +30,9 @@ public void addCustomer(Customer customers, AddressBook addressBook); + public void addCustomer(Map<String, String> userInfo, Customer customers, + AddressBook addressBook) throws CommonException; + public Zone getZone(BigDecimal zoneId); public Customer getCustomerByPortalId(String portalId); Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/service/impl/CustomerServiceImpl.java 2007-10-11 13:29:41 UTC (rev 621) @@ -1,8 +1,16 @@ package jp.sf.pal.pompei.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.StringTokenizer; +import javax.faces.context.FacesContext; +import javax.portlet.PortletConfig; + +import jp.sf.pal.common.CommonException; import jp.sf.pal.pompei.PompeiConstants; import jp.sf.pal.pompei.cbean.AddressBookCB; import jp.sf.pal.pompei.cbean.CustomerBasketAttributeCB; @@ -20,7 +28,22 @@ import jp.sf.pal.pompei.exentity.CustomerBasketAttribute; import jp.sf.pal.pompei.exentity.Zone; import jp.sf.pal.pompei.service.CustomerService; +import jp.sf.pal.pompei.util.SystemUtil; +import jp.sf.pal.pompei.util.UserRegistrationUtil; +import org.apache.jetspeed.JetspeedActions; +import org.apache.jetspeed.PortalReservedParameters; +import org.apache.jetspeed.administration.AdministrationEmailException; +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.om.common.SecurityConstraint; +import org.apache.jetspeed.om.folder.Folder; +import org.apache.jetspeed.page.PageManager; +import org.apache.jetspeed.request.RequestContext; +import org.apache.jetspeed.security.User; + public class CustomerServiceImpl implements CustomerService { /** @@ -28,6 +51,8 @@ */ private static final long serialVersionUID = -5106715434338567436L; + private static final String PATH_SEPARATOR = "/"; + private transient CustomerBhv customerBhv; private transient AddressBookBhv addressBookBhv; @@ -142,6 +167,247 @@ getAddressBookBhv().insert(addressBook); } + public void addCustomer(Map<String, String> userInfo, Customer customer, + AddressBook addressBook) throws CommonException { + + String password = userInfo.remove(PompeiConstants.USER_PASSWORD); + String verifyPassword = userInfo + .remove(PompeiConstants.USER_VERIFY_PASSWORD); + String emailSubject = userInfo + .remove(PompeiConstants.EMAIL_SUBJECT_USER_REGISTRATION); + if (!UserRegistrationUtil + .getBoolean(PompeiConstants.FORCE_GENERATED_PASSWORD)) { + if (password == null || password.equals("")) { + throw new CommonException("error.lacking.password", + "The password is null."); + } + } + + if (UserRegistrationUtil + .getBoolean(PompeiConstants.FORCE_USE_EMAIL_AS_USERNAME)) { + // force user.name to be same as email + userInfo.put(PompeiConstants.USER_NAME, userInfo + .get(PompeiConstants.USER_BUSINESS_INFO_ONLINE_EMAIL)); + } + + boolean userIdExistsFlag = true; + try { + SystemUtil.getUserManager().getUser( + userInfo.get(PompeiConstants.USER_NAME)); + } 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(PompeiConstants.FORCE_UNIQUE_EMAIL)) { + boolean emailExistsFlag = true; + User user = null; + try { + user = SystemUtil + .getPortalAdministration() + .lookupUserFromEmail( + userInfo + .get(PompeiConstants.USER_BUSINESS_INFO_ONLINE_EMAIL)); + } catch (AdministrationEmailException e) { + emailExistsFlag = false; + } + if ((emailExistsFlag) || (user != null)) { + throw new CommonException("error.email_already_exists", + "The email already exists."); + } + + } + + if (UserRegistrationUtil + .getBoolean(PompeiConstants.FORCE_GENERATED_PASSWORD)) { + try { + password = SystemUtil.getPortalAdministration() + .generatePassword(); + } catch (Exception e) { + throw new CommonException("error.failed_to_generate_password", + "Could not create password.", e); + } + } else { + if (verifyPassword == null || !verifyPassword.equals(password)) { + throw new CommonException("error.two_passwords_do_not_match", + "Two passwords do not match."); + } + } + + String userName = userInfo.get(PompeiConstants.USER_NAME); + try { + SystemUtil.getPortalAdministration().registerUser( + userName, + password, + UserRegistrationUtil.getStringList(PompeiConstants.ROLES), + UserRegistrationUtil.getStringList(PompeiConstants.GROUPS), + userInfo, // note use of only + // PLT.D values here. + UserRegistrationUtil.getStringMap(PompeiConstants.RULES), + PompeiConstants.DEFAULT_USER_TEMPLATE_FOLDER); // TODO default template path + } catch (Exception e) { + cancelToAddCustomer(userInfo, customer, addressBook); + throw new CommonException("error.failed_to_add", + "Could not register a user.", e); + } + + // set security constraint + String userhome = Folder.USER_FOLDER + userName; + try { + PageManager pageManager = SystemUtil.getPageManager(); + SecurityConstraint sc = pageManager.newPageSecurityConstraint(); + sc.setUsers(parseCSVList(userName)); + List<String> permissions = new ArrayList<String>(); + permissions.add(JetspeedActions.VIEW); + permissions.add(JetspeedActions.EDIT); + permissions.add(JetspeedActions.HELP); + sc.setPermissions(permissions); + Folder userFolder = pageManager.getFolder(userhome); + + if (userFolder.getSecurityConstraints() == null) { + userFolder.setSecurityConstraints(pageManager + .newSecurityConstraints()); + } + userFolder.getSecurityConstraints().getSecurityConstraints() + .add(sc); + + pageManager.updateFolder(userFolder); + pageManager.reset(); + } catch (Exception e) { + cancelToAddCustomer(userInfo, customer, addressBook); + throw new CommonException("could.not.access.folder", + "Could not access a folder: " + userhome, e); + } + + // set portal id + customer.setPortalId(userName); + + try { + // create customer + getCustomerBhv().insert(customer); + addressBook.setCustomerId(customer.getCustomerId()); + getAddressBookBhv().insert(addressBook); + } catch (Exception e) { + cancelToAddCustomer(userInfo, customer, addressBook); + throw new CommonException("could.not.insert.customer.data", + "Could not insert customer data. ", e); + } + + if (UserRegistrationUtil.getBoolean(PompeiConstants.SEND_MAIL)) { + if (password != null) { + userInfo.put("password", password); + } + + try { + // template + String templ = getTemplatePath(FacesContext + .getCurrentInstance()); + + if (templ == null) { + cancelToAddCustomer(userInfo, customer, addressBook); + throw new CommonException( + "error.registration_completed_but_could_not_find_template", + "Email template is not available."); + } + SystemUtil + .getPortalAdministration() + .sendEmail( + (PortletConfig) FacesContext + .getCurrentInstance() + .getExternalContext().getRequestMap() + .get("javax.portlet.PortletConfig"), + userInfo + .get(PompeiConstants.USER_BUSINESS_INFO_ONLINE_EMAIL), + emailSubject, templ, userInfo); + } catch (Exception e) { + cancelToAddCustomer(userInfo, customer, addressBook); + throw new CommonException( + "error.registration_completed_but_could_not_send", + "Could not send a registration mail.", e); + } + } + + } + + protected void cancelToAddCustomer(Map<String, String> userInfo, + Customer customer, AddressBook addressBook) { + try { + getAddressBookBhv().delete(addressBook); + } catch (Exception e) { + } + + try { + getCustomerBhv().delete(customer); + } catch (Exception e) { + } + + try { + String userhome = Folder.USER_FOLDER + + userInfo.get(PompeiConstants.USER_NAME); + PageManager pageManager = SystemUtil.getPageManager(); + Folder folder = pageManager.getFolder(userhome); + pageManager.removeFolder(folder); + } catch (Exception e) { + } + + try { + SystemUtil.getUserManager().removeUser( + userInfo.get(PompeiConstants.USER_NAME)); + } catch (Exception e) { + } + } + + private String getTemplatePath(FacesContext facesContext) { + JetspeedTemplateLocator templateLocator = UserRegistrationUtil + .getTemplateLocator(); + String templateLocation = UserRegistrationUtil + .getString(PompeiConstants.EMAIL_TEMPLATE_LOCATION); + String templateName = UserRegistrationUtil + .getString(PompeiConstants.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; + } + } + + private List<String> parseCSVList(String csv) { + List<String> csvList = new ArrayList<String>(); + if (csv != null) { + if (csv.indexOf(',') != -1) { + StringTokenizer csvTokens = new StringTokenizer(csv, ","); + while (csvTokens.hasMoreTokens()) { + csvList.add(csvTokens.nextToken().trim()); + } + } else { + csvList.add(csv); + } + } + return csvList; + } + public Zone getZone(BigDecimal zoneId) { ZoneCB cb = new ZoneCB(); cb.setupSelect_Country(); Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/SystemUtil.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/SystemUtil.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/SystemUtil.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,90 @@ +package jp.sf.pal.pompei.util; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import javax.faces.context.FacesContext; +import javax.portlet.PortletConfig; + +import jp.sf.pal.common.CommonException; +import jp.sf.pal.pompei.PompeiConstants; + +import org.apache.jetspeed.administration.PortalAdministration; +import org.apache.jetspeed.page.PageManager; +import org.apache.jetspeed.security.UserManager; + +public class SystemUtil { + private static FacesContext getFacesContext() { + FacesContext context = FacesContext.getCurrentInstance(); + if (context == null) { + throw new IllegalStateException( + "Could not find FacesContext instance."); + } + return context; + } + + public static PortletConfig getPortletConfig() { + String name = "javax.portlet.PortletConfig"; + return (PortletConfig) getFacesContext().getExternalContext() + .getRequestMap().get(name); + } + + public static String getContextRealPath(String path) { + return getPortletConfig().getPortletContext().getRealPath(path); + } + + public static String getMessageDigest(String str) throws CommonException { + if (str == null) { + str = ""; + } + // TODO move following params to portlet.xml + String algorithm = getPortletConfig().getInitParameter( + PompeiConstants.MD_ALGORITHM); + if (algorithm == null || algorithm.equals("")) { + algorithm = PompeiConstants.DEFAULT_MD_ALGORITHM; + } + String encoding = getPortletConfig().getInitParameter( + PompeiConstants.MD_ENCODING); + if (encoding == null || encoding.equals("")) { + encoding = PompeiConstants.DEFAULT_MD_ENCODING; + } + try { + MessageDigest md = MessageDigest.getInstance(algorithm); + md.update(str.getBytes(encoding)); + byte[] digest = md.digest(); + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < digest.length; i++) { + int val = digest[i] & 0xFF; + if (val < 16) { + buf.append("0"); + } + buf.append(Integer.toString(val, 16)); + } + return buf.toString(); + } catch (NoSuchAlgorithmException e) { + throw new CommonException("could.not.encode.secret.password", + "Could not encode secret password", e); + } catch (UnsupportedEncodingException e) { + throw new CommonException("could.not.encode.secret.password", + "Could not encode secret password", e); + } + } + + public static UserManager getUserManager() { + return (UserManager) getFacesContext().getExternalContext() + .getRequestMap().get(PompeiConstants.USER_MANAGER_COMPONENT); + } + + public static PortalAdministration getPortalAdministration() { + return (PortalAdministration) getFacesContext().getExternalContext() + .getRequestMap().get( + PompeiConstants.PORTAL_ADMINISTRATION_COMPONENT); + } + + public static PageManager getPageManager() { + return (PageManager) getFacesContext().getExternalContext() + .getRequestMap().get(PompeiConstants.PAGE_MANAGER_COMPONENT); + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/SystemUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/UserRegistrationUtil.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/UserRegistrationUtil.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/UserRegistrationUtil.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,77 @@ +package jp.sf.pal.pompei.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.faces.context.FacesContext; + +import jp.sf.pal.pompei.PompeiConstants; + +import org.apache.jetspeed.locator.JetspeedTemplateLocator; + +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( + PompeiConstants.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( + PompeiConstants.TEMPLATE_LOCATOR); + } + + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/util/UserRegistrationUtil.java ___________________________________________________________________ Name: svn:eol-style + native Modified: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/checkout/UserInfoEditAction.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/checkout/UserInfoEditAction.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/checkout/UserInfoEditAction.java 2007-10-11 13:29:41 UTC (rev 621) @@ -71,7 +71,7 @@ yearOfDayOfBirthItems.add(map); } getUserInfoEditPage().setYearOfDayOfBirthItems(yearOfDayOfBirthItems); - getUserInfoEditPage().setYearOfDayOfBirth(new Integer(year)); + getUserInfoEditPage().setYearOfDayOfBirth(Integer.valueOf(year)); List<Map<String, String>> monthOfDayOfBirthItems = new ArrayList<Map<String, String>>(); for (int i = 1; i < 13; i++) { @@ -82,7 +82,7 @@ } getUserInfoEditPage().setMonthOfDayOfBirthItems(monthOfDayOfBirthItems); getUserInfoEditPage().setMonthOfDayOfBirth( - new Integer(DateUtil.getMonth(now) + 1)); + Integer.valueOf(DateUtil.getMonth(now) + 1)); List<Map<String, String>> dateOfDayOfBirthItems = new ArrayList<Map<String, String>>(); for (int i = 1; i < 32; i++) { @@ -93,7 +93,7 @@ } getUserInfoEditPage().setDateOfDayOfBirthItems(dateOfDayOfBirthItems); getUserInfoEditPage().setDateOfDayOfBirth( - new Integer(DateUtil.getDate(now))); + Integer.valueOf(DateUtil.getDate(now))); return null; } @@ -130,14 +130,10 @@ } // check cart - if (customer != null) { - List<CustomerBasket> customerBasketList = getCartService() - .getCustomerBasketList(customer.getCustomerId()); - if (customerBasketList != null && !customerBasketList.isEmpty()) { - getUserInfoEditPage().setBasket(true); - } else { - getUserInfoEditPage().setBasket(false); - } + List<CustomerBasket> customerBasketList = getCartService() + .getCustomerBasketList(customer.getCustomerId()); + if (customerBasketList != null && !customerBasketList.isEmpty()) { + getUserInfoEditPage().setBasket(true); } else { getUserInfoEditPage().setBasket(false); } Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/AbstractUsersignupPage.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/AbstractUsersignupPage.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/AbstractUsersignupPage.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,456 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.util.Date; + +import org.seasar.teeda.extension.util.LabelHelper; + +public abstract class AbstractUsersignupPage { + private LabelHelper labelHelper; + + private Date dayOfBirth; + + private String postcode; + + private String cellphone; + + private String city; + + private String company; + + private Integer dateOfDayOfBirth; + + private String department; + + private String emailAddress; + + private String emailAddressConfirm; + + private String fax; + + private String firstname; + + private String firstnameDescription; + + private String gender; + + private String lastname; + + private String lastnameDescription; + + private Integer monthOfDayOfBirth; + + private String primaryPostcode; + + private String secondaryPostcode; + + private String state; + + private String streetAddress; + + private String telephone; + + private String termOfService; + + private String userName; + + private String userSecretAnswer; + + private String userSecretQuestion; + + private String userSecretQuestionSelection; + + private Integer yearOfDayOfBirth; + + /** + * @return the cellphone + */ + public String getCellphone() { + return cellphone; + } + + /** + * @param cellphone the cellphone to set + */ + public void setCellphone(String cellphone) { + this.cellphone = cellphone; + } + + /** + * @return the city + */ + public String getCity() { + return city; + } + + /** + * @param city the city to set + */ + public void setCity(String city) { + this.city = city; + } + + /** + * @return the company + */ + public String getCompany() { + return company; + } + + /** + * @param company the company to set + */ + public void setCompany(String company) { + this.company = company; + } + + /** + * @return the dateOfDayOfBirth + */ + public Integer getDateOfDayOfBirth() { + return dateOfDayOfBirth; + } + + /** + * @param dateOfDayOfBirth the dateOfDayOfBirth to set + */ + public void setDateOfDayOfBirth(Integer dateOfDayOfBirth) { + this.dateOfDayOfBirth = dateOfDayOfBirth; + } + + /** + * @return the department + */ + public String getDepartment() { + return department; + } + + /** + * @param department the department to set + */ + public void setDepartment(String department) { + this.department = department; + } + + /** + * @return the emailAddress + */ + public String getEmailAddress() { + return emailAddress; + } + + /** + * @param emailAddress the emailAddress to set + */ + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + /** + * @return the emailAddressConfirm + */ + public String getEmailAddressConfirm() { + return emailAddressConfirm; + } + + /** + * @param emailAddressConfirm the emailAddressConfirm to set + */ + public void setEmailAddressConfirm(String emailAddressConfirm) { + this.emailAddressConfirm = emailAddressConfirm; + } + + /** + * @return the fax + */ + public String getFax() { + return fax; + } + + /** + * @param fax the fax to set + */ + public void setFax(String fax) { + this.fax = fax; + } + + /** + * @return the firstname + */ + public String getFirstname() { + return firstname; + } + + /** + * @param firstname the firstname to set + */ + public void setFirstname(String firstname) { + this.firstname = firstname; + } + + /** + * @return the firstnameDescription + */ + public String getFirstnameDescription() { + return firstnameDescription; + } + + /** + * @param firstnameDescription the firstnameDescription to set + */ + public void setFirstnameDescription(String firstnameDescription) { + this.firstnameDescription = firstnameDescription; + } + + /** + * @return the gender + */ + public String getGender() { + return gender; + } + + /** + * @param gender the gender to set + */ + public void setGender(String gender) { + this.gender = gender; + } + + /** + * @return the lastname + */ + public String getLastname() { + return lastname; + } + + /** + * @param lastname the lastname to set + */ + public void setLastname(String lastname) { + this.lastname = lastname; + } + + /** + * @return the lastnameDescription + */ + public String getLastnameDescription() { + return lastnameDescription; + } + + /** + * @param lastnameDescription the lastnameDescription to set + */ + public void setLastnameDescription(String lastnameDescription) { + this.lastnameDescription = lastnameDescription; + } + + /** + * @return the monthOfDayOfBirth + */ + public Integer getMonthOfDayOfBirth() { + return monthOfDayOfBirth; + } + + /** + * @param monthOfDayOfBirth the monthOfDayOfBirth to set + */ + public void setMonthOfDayOfBirth(Integer monthOfDayOfBirth) { + this.monthOfDayOfBirth = monthOfDayOfBirth; + } + + /** + * @return the primaryPostcode + */ + public String getPrimaryPostcode() { + return primaryPostcode; + } + + /** + * @param primaryPostcode the primaryPostcode to set + */ + public void setPrimaryPostcode(String primaryPostcode) { + this.primaryPostcode = primaryPostcode; + } + + /** + * @return the secondaryPostcode + */ + public String getSecondaryPostcode() { + return secondaryPostcode; + } + + /** + * @param secondaryPostcode the secondaryPostcode to set + */ + public void setSecondaryPostcode(String secondaryPostcode) { + this.secondaryPostcode = secondaryPostcode; + } + + /** + * @return the state + */ + public String getState() { + return state; + } + + /** + * @param state the state to set + */ + public void setState(String state) { + this.state = state; + } + + /** + * @return the streetAddress + */ + public String getStreetAddress() { + return streetAddress; + } + + /** + * @param streetAddress the streetAddress to set + */ + public void setStreetAddress(String streetAddress) { + this.streetAddress = streetAddress; + } + + /** + * @return the telephone + */ + public String getTelephone() { + return telephone; + } + + /** + * @param telephone the telephone to set + */ + public void setTelephone(String telephone) { + this.telephone = telephone; + } + + /** + * @return the termOfService + */ + public String getTermOfService() { + return termOfService; + } + + /** + * @param termOfService the termOfService to set + */ + public void setTermOfService(String termOfService) { + this.termOfService = termOfService; + } + + /** + * @return the userName + */ + public String getUserName() { + return userName; + } + + /** + * @param userName the userName to set + */ + public void setUserName(String userName) { + this.userName = userName; + } + + /** + * @return the userSecretAnswer + */ + public String getUserSecretAnswer() { + return userSecretAnswer; + } + + /** + * @param userSecretAnswer the userSecretAnswer to set + */ + public void setUserSecretAnswer(String userSecretAnswer) { + this.userSecretAnswer = userSecretAnswer; + } + + /** + * @return the userSecretQuestion + */ + public String getUserSecretQuestion() { + return userSecretQuestion; + } + + /** + * @param userSecretQuestion the userSecretQuestion to set + */ + public void setUserSecretQuestion(String userSecretQuestion) { + this.userSecretQuestion = userSecretQuestion; + } + + /** + * @return the userSecretQuestionSelection + */ + public String getUserSecretQuestionSelection() { + return userSecretQuestionSelection; + } + + /** + * @param userSecretQuestionSelection the userSecretQuestionSelection to set + */ + public void setUserSecretQuestionSelection( + String userSecretQuestionSelection) { + this.userSecretQuestionSelection = userSecretQuestionSelection; + } + + /** + * @return the yearOfDayOfBirth + */ + public Integer getYearOfDayOfBirth() { + return yearOfDayOfBirth; + } + + /** + * @param yearOfDayOfBirth the yearOfDayOfBirth to set + */ + public void setYearOfDayOfBirth(Integer yearOfDayOfBirth) { + this.yearOfDayOfBirth = yearOfDayOfBirth; + } + + /** + * @return the labelHelper + */ + public LabelHelper getLabelHelper() { + return labelHelper; + } + + /** + * @param labelHelper the labelHelper to set + */ + public void setLabelHelper(LabelHelper labelHelper) { + this.labelHelper = labelHelper; + } + + /** + * @return the dayOfBirth + */ + public Date getDayOfBirth() { + return dayOfBirth; + } + + /** + * @param dayOfBirth the dayOfBirth to set + */ + public void setDayOfBirth(Date dayOfBirth) { + this.dayOfBirth = dayOfBirth; + } + + /** + * @return the postcode + */ + public String getPostcode() { + return postcode; + } + + /** + * @param postcode the postcode to set + */ + public void setPostcode(String postcode) { + this.postcode = postcode; + } +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/AbstractUsersignupPage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompleteAction.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompleteAction.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompleteAction.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,40 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.Serializable; + +import jp.sf.pal.common.util.FacesMessageUtil; + +public class SignupCompleteAction implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 2689633390570340463L; + /** + * + */ + private SignupCompletePage signupCompletePage; + public Class<?> initialize() { + return null; + } + + public Class<?> prerender() { + // render faces messages + FacesMessageUtil.renderMessages(); + return null; + } + /** + * @return the signupCompletePage + */ + public SignupCompletePage getSignupCompletePage() { + return signupCompletePage; + } + + /** + * @param signupCompletePage the signupCompletePage to set + */ + public void setSignupCompletePage(SignupCompletePage signupCompletePage) { + this.signupCompletePage = signupCompletePage; + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompleteAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompletePage.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompletePage.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompletePage.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,17 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.Serializable; + +public class SignupCompletePage extends AbstractUsersignupPage implements + Serializable { + + /** + * + */ + private static final long serialVersionUID = 1424283975909978739L; + + public boolean isSendEmail() { + return getEmailAddress() != null; + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupCompletePage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmAction.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmAction.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmAction.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,233 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import jp.sf.pal.common.CommonException; +import jp.sf.pal.common.util.FacesMessageUtil; +import jp.sf.pal.pompei.PompeiConstants; +import jp.sf.pal.pompei.dxo.CustomerDxo; +import jp.sf.pal.pompei.exentity.AddressBook; +import jp.sf.pal.pompei.exentity.Customer; +import jp.sf.pal.pompei.exentity.Zone; +import jp.sf.pal.pompei.service.CustomerService; +import jp.sf.pal.pompei.service.LanguageService; +import jp.sf.pal.pompei.util.SessionUtil; +import jp.sf.pal.pompei.util.SystemUtil; + +import org.seasar.framework.log.Logger; +import org.seasar.teeda.extension.annotation.takeover.TakeOver; +import org.seasar.teeda.extension.annotation.takeover.TakeOverType; + +public class SignupConfirmAction implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 4440511977300860903L; + + /** + * Logger for this class + */ + private static final Logger logger = Logger + .getLogger(SignupConfirmAction.class); + + /** + * + */ + private SignupConfirmPage signupConfirmPage; + + private CustomerDxo customerDxo; + + private CustomerService customerService; + + private LanguageService languageService; + + public Class<?> initialize() { + return null; + } + + public Class<?> prerender() { + getSignupConfirmPage().setUserSecretAnswer( + PompeiConstants.DUMMY_SECRET_ANSWER); + + // render faces messages + FacesMessageUtil.renderMessages(); + return null; + } + + public Class<?> doCancel() { + return SignupEditPage.class; + } + + @TakeOver(type = TakeOverType.INCLUDE, properties = "emailAddress") + public Class<?> doCreate() { + + // message digest + try { + getSignupConfirmPage().setUserSecretAnswer( + SystemUtil.getMessageDigest(getSignupConfirmPage() + .getUserSecretAnswer())); + } catch (CommonException e) { + FacesMessageUtil.addErrorMessage(e.getMessageId()); + logger.log(e); + return null; + } + + // new + Date now = new Date(); + Customer customer = new Customer(); + customer.setDateAdded(new Timestamp(now.getTime())); + customer.setLastModified(new Timestamp(now.getTime())); + AddressBook addressBook = new AddressBook(); + getCustomerDxo().convert(getSignupConfirmPage(), customer); + getCustomerDxo().convert(getSignupConfirmPage(), addressBook); + + //TODO zone and check if it's null + Zone zones = getCustomerService().getZone(new BigDecimal(130)); + addressBook.setZoneId(zones.getZoneId()); + //TODO countries and check if it's null + addressBook.setCountryId(zones.getCountry().getCountryId()); + //TODO select language + addressBook.setLanguageId(getLanguageService().getDefaultLanguage() + .getLanguageId()); + // set default address + addressBook.setDefaultAddress(PompeiConstants.TRUE_BIGDECIMAL); + + Map<String, String> userInfo = new HashMap<String, String>(); + + // put user attribute + userInfo.put(PompeiConstants.USER_SECRET_ANSWER, (String) SessionUtil + .getFromLocalScope(PompeiConstants.USER_SECRET_ANSWER)); + userInfo.put(PompeiConstants.USER_NAME, getSignupConfirmPage() + .getUserName()); + userInfo.put(PompeiConstants.USER_BUSINESS_INFO_ONLINE_EMAIL, + getSignupConfirmPage().getEmailAddress()); + userInfo.put(PompeiConstants.USER_SECRET_QUESTION, + getSignupConfirmPage().getUserSecretQuestion()); + userInfo.put("user.home-info.telecom.mobile.number", + convertNotNull(getSignupConfirmPage().getCellphone())); + userInfo.put("user.home-info.postal.city", + convertNotNull(getSignupConfirmPage().getCity())); + userInfo.put("user.employer", convertNotNull(getSignupConfirmPage() + .getCompany())); + userInfo.put("user.department", convertNotNull(getSignupConfirmPage() + .getDepartment())); + userInfo.put("user.home-info.online.email", + convertNotNull(getSignupConfirmPage().getEmailAddress())); + userInfo.put("user.home-info.telecom.fax.number", + convertNotNull(getSignupConfirmPage().getFax())); + userInfo.put("user.name.given", convertNotNull(getSignupConfirmPage() + .getFirstname())); + userInfo + .put("user.name.given.yomi", + convertNotNull(getSignupConfirmPage() + .getFirstnameDescription())); + userInfo.put("user.gender", convertNotNull(getSignupConfirmPage() + .getGender())); + userInfo.put("user.name.family", convertNotNull(getSignupConfirmPage() + .getLastname())); + userInfo + .put("user.name.family.yomi", + convertNotNull(getSignupConfirmPage() + .getLastnameDescription())); + userInfo.put("user.home-info.postal.postalcode", + convertNotNull(getSignupConfirmPage().getPostcode())); + userInfo.put("user.home-info.postal.stateprov", + convertNotNull(getSignupConfirmPage().getState())); + userInfo.put("user.home-info.postal.street", + convertNotNull(getSignupConfirmPage().getStreetAddress())); + userInfo.put("user.home-info.telecom.telephone.number", + convertNotNull(getSignupConfirmPage().getTelephone())); + userInfo.put("user.bdate", convertNotNull(getSignupConfirmPage() + .getDayOfBirth().toString())); + + // set email title + userInfo.put(PompeiConstants.EMAIL_SUBJECT_USER_REGISTRATION, + getSignupConfirmPage().getLabelHelper().getLabelValue( + PompeiConstants.EMAIL_SUBJECT_USER_REGISTRATION)); + + try { + getCustomerService().addCustomer(userInfo, customer, addressBook); + } catch (CommonException e) { + FacesMessageUtil.addErrorMessage(e.getMessageId()); + logger.log(e); + return null; + } catch (Exception e) { + FacesMessageUtil + .addErrorMessage("could.not.create.user.by.system.error"); + logger.log(e); + return null; + } + + return SignupCompletePage.class; + } + + private String convertNotNull(String str) { + if (str == null) { + return ""; + } + return str; + } + + /** + * @return the signupConfirmPage + */ + public SignupConfirmPage getSignupConfirmPage() { + return signupConfirmPage; + } + + /** + * @param signupConfirmPage the signupConfirmPage to set + */ + public void setSignupConfirmPage(SignupConfirmPage signupConfirmPage) { + this.signupConfirmPage = signupConfirmPage; + } + + /** + * @return the customerDxo + */ + public CustomerDxo getCustomerDxo() { + return customerDxo; + } + + /** + * @param customerDxo the customerDxo to set + */ + public void setCustomerDxo(CustomerDxo customerDxo) { + this.customerDxo = customerDxo; + } + + /** + * @return the customerService + */ + public CustomerService getCustomerService() { + return customerService; + } + + /** + * @param customerService the customerService to set + */ + public void setCustomerService(CustomerService customerService) { + this.customerService = customerService; + } + + /** + * @return the languageService + */ + public LanguageService getLanguageService() { + return languageService; + } + + /** + * @param languageService the languageService to set + */ + public void setLanguageService(LanguageService languageService) { + this.languageService = languageService; + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmPage.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmPage.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmPage.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,17 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.Serializable; + +public class SignupConfirmPage extends AbstractUsersignupPage implements + Serializable { + + /** + * + */ + private static final long serialVersionUID = -1370068406355672437L; + + public String getGenderString() { + return getLabelHelper().getLabelValue(getGender()); + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupConfirmPage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditAction.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditAction.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditAction.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,206 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.seasar.framework.log.Logger; + +import jp.sf.pal.common.util.DateUtil; +import jp.sf.pal.common.util.FacesMessageUtil; +import jp.sf.pal.pompei.PompeiConstants; +import jp.sf.pal.pompei.util.SessionUtil; +import jp.sf.pal.pompei.util.SystemUtil; + +public class SignupEditAction implements Serializable { + + /** + * + */ + private static final long serialVersionUID = -2384511292540333093L; + + /** + * Logger for this class + */ + private static final Logger logger = Logger + .getLogger(SignupEditAction.class); + + /** + * + */ + private SignupEditPage signupEditPage; + + public Class<?> initialize() { + // state items + List<Map<String, String>> stateItems = new ArrayList<Map<String, String>>(); + String states = getSignupEditPage().getLabelHelper().getLabelValue( + "state.items"); + String[] stateArray = states.split(","); + for (String state : stateArray) { + Map<String, String> map = new HashMap<String, String>(); + map.put("label", state); + map.put("value", state); + stateItems.add(map); + } + getSignupEditPage().setStateItems(stateItems); + // dayOfBirth + Date now = new Date(); + List<Map<String, String>> yearOfDayOfBirthItems = new ArrayList<Map<String, String>>(); + int year = DateUtil.getYear(now) + 1900; + for (int i = 0; i < 100; i++) { + Map<String, String> map = new HashMap<String, String>(); + map.put("label", Integer.toString(year - i)); + map.put("value", Integer.toString(year - i)); + yearOfDayOfBirthItems.add(map); + } + getSignupEditPage().setYearOfDayOfBirthItems(yearOfDayOfBirthItems); + getSignupEditPage().setYearOfDayOfBirth(Integer.valueOf(year)); + + List<Map<String, String>> monthOfDayOfBirthItems = new ArrayList<Map<String, String>>(); + for (int i = 1; i < 13; i++) { + Map<String, String> map = new HashMap<String, String>(); + map.put("label", Integer.toString(i)); + map.put("value", Integer.toString(i)); + monthOfDayOfBirthItems.add(map); + } + getSignupEditPage().setMonthOfDayOfBirthItems(monthOfDayOfBirthItems); + getSignupEditPage().setMonthOfDayOfBirth( + Integer.valueOf(DateUtil.getMonth(now) + 1)); + + List<Map<String, String>> dateOfDayOfBirthItems = new ArrayList<Map<String, String>>(); + for (int i = 1; i < 32; i++) { + Map<String, String> map = new HashMap<String, String>(); + map.put("label", Integer.toString(i)); + map.put("value", Integer.toString(i)); + dateOfDayOfBirthItems.add(map); + } + getSignupEditPage().setDateOfDayOfBirthItems(dateOfDayOfBirthItems); + getSignupEditPage().setDateOfDayOfBirth( + Integer.valueOf(DateUtil.getDate(now))); + + // Load Secret Question + List<Map<String, String>> questionItems = new ArrayList<Map<String, String>>(); + int numOfQuestions = Integer.parseInt(getSignupEditPage() + .getLabelHelper().getLabelValue("secretQuestion.num")); + for (int i = 1; i <= numOfQuestions; i++) { + Map<String, String> map = new HashMap<String, String>(2); + String value = getSignupEditPage().getLabelHelper().getLabelValue( + "secretQuestion." + i); + map.put("label", value); + map.put("value", value); + questionItems.add(map); + } + getSignupEditPage().setUserSecretQuestionSelectionItems(questionItems); + + return null; + } + + public Class<?> prerender() { + // Load Term Of Service + String filename = getSignupEditPage().getLabelHelper().getLabelValue( + "termOfServiceFile"); + if (filename == null) { + filename = "/WEB-INF/template/term_of_service.txt"; + } + String encoding = getSignupEditPage().getLabelHelper().getLabelValue( + "termOfServiceEncoding"); + if (encoding == null) { + encoding = "UTF-8"; + } + StringBuffer buf = new StringBuffer(); + BufferedReader reader = null; + try { + reader = new BufferedReader( + new InputStreamReader(new FileInputStream(SystemUtil + .getContextRealPath(filename)), encoding)); + String line; + while ((line = reader.readLine()) != null) { + buf.append(line).append("\n"); + } + } catch (UnsupportedEncodingException e) { + FacesMessageUtil.addErrorMessage("could.not.read.term.of.service"); + logger.log("EPA0004", new Object[] { this.toString() }, e); + } catch (FileNotFoundException e) { + FacesMessageUtil.addErrorMessage("could.not.read.term.of.service"); + logger.log("EPA0004", new Object[] { this.toString() }, e); + } catch (IOException e) { + FacesMessageUtil.addErrorMessage("could.not.read.term.of.service"); + logger.log("EPA0004", new Object[] { this.toString() }, e); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + } + } + } + getSignupEditPage().setTermOfService(buf.toString()); + + // reset secret answer + getSignupEditPage().setUserSecretAnswer(""); + + // render faces messages + FacesMessageUtil.renderMessages(); + return null; + } + + private void preprocessingForUpdate() { + // day of birth + getSignupEditPage().setDayOfBirth( + DateUtil.get(getSignupEditPage().getYearOfDayOfBirth() - 1900, + getSignupEditPage().getMonthOfDayOfBirth() - 1, + getSignupEditPage().getDateOfDayOfBirth())); + + // postcode + getSignupEditPage().setPostcode( + getSignupEditPage().getPrimaryPostcode() + "-" + + getSignupEditPage().getSecondaryPostcode()); + } + + public Class<?> doConfirm() { + if (getSignupEditPage().getUserSecretQuestionSelection() != null) { + getSignupEditPage().setUserSecretQuestion( + getSignupEditPage().getUserSecretQuestionSelection()); + } + // check secret question + if (getSignupEditPage().getUserSecretQuestion() == null + || getSignupEditPage().getUserSecretQuestion().equals("")) { + FacesMessageUtil.addErrorMessage("type.secret.question"); + return null; + } + + preprocessingForUpdate(); + + // put secret answer to session + SessionUtil.putToLocalScope(PompeiConstants.USER_SECRET_ANSWER, + getSignupEditPage().getUserSecretAnswer()); + getSignupEditPage().setUserSecretAnswer( + PompeiConstants.DUMMY_SECRET_ANSWER); + + return SignupConfirmPage.class; + } + + /** + * @return signupEditPage + */ + public SignupEditPage getSignupEditPage() { + return signupEditPage; + } + + /** + * @param signupEditPage 設定する signupEditPage + */ + public void setSignupEditPage(SignupEditPage signupEditPage) { + this.signupEditPage = signupEditPage; + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditAction.java ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditPage.java =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditPage.java 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditPage.java 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,271 @@ +package jp.sf.pal.pompei.web.user.signup; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import org.seasar.teeda.extension.annotation.validator.Required; + +public class SignupEditPage extends AbstractUsersignupPage implements + Serializable { + + /** + * + */ + private static final long serialVersionUID = -527070376132944358L; + + private List<Map<String, String>> dateOfDayOfBirthItems; + + private List<Map<String, String>> monthOfDayOfBirthItems; + + private List<Map<String, String>> stateItems; + + private List<Map<String, String>> userSecretQuestionSelectionItems; + + private List<Map<String, String>> yearOfDayOfBirthItems; + + /** + * @return the dateOfDayOfBirthItems + */ + public List<Map<String, String>> getDateOfDayOfBirthItems() { + return dateOfDayOfBirthItems; + } + + /** + * @param dateOfDayOfBirthItems the dateOfDayOfBirthItems to set + */ + public void setDateOfDayOfBirthItems( + List<Map<String, String>> dateOfDayOfBirthItems) { + this.dateOfDayOfBirthItems = dateOfDayOfBirthItems; + } + + /** + * @return the monthOfDayOfBirthItems + */ + public List<Map<String, String>> getMonthOfDayOfBirthItems() { + return monthOfDayOfBirthItems; + } + + /** + * @param monthOfDayOfBirthItems the monthOfDayOfBirthItems to set + */ + public void setMonthOfDayOfBirthItems( + List<Map<String, String>> monthOfDayOfBirthItems) { + this.monthOfDayOfBirthItems = monthOfDayOfBirthItems; + } + + /** + * @return the stateItems + */ + public List<Map<String, String>> getStateItems() { + return stateItems; + } + + /** + * @param stateItems the stateItems to set + */ + public void setStateItems(List<Map<String, String>> stateItems) { + this.stateItems = stateItems; + } + + /** + * @return the userSecretQuestionSelectionItems + */ + public List<Map<String, String>> getUserSecretQuestionSelectionItems() { + return userSecretQuestionSelectionItems; + } + + /** + * @param userSecretQuestionSelectionItems the userSecretQuestionSelectionItems to set + */ + public void setUserSecretQuestionSelectionItems( + List<Map<String, String>> userSecretQuestionSelectionItems) { + this.userSecretQuestionSelectionItems = userSecretQuestionSelectionItems; + } + + /** + * @return the yearOfDayOfBirthItems + */ + public List<Map<String, String>> getYearOfDayOfBirthItems() { + return yearOfDayOfBirthItems; + } + + /** + * @param yearOfDayOfBirthItems the yearOfDayOfBirthItems to set + */ + public void setYearOfDayOfBirthItems( + List<Map<String, String>> yearOfDayOfBirthItems) { + this.yearOfDayOfBirthItems = yearOfDayOfBirthItems; + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setCity(java.lang.String) + */ + @Required + @Override + public void setCity(String city) { + // TODO Auto-generated method stub + super.setCity(city); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setDateOfDayOfBirth(java.lang.Integer) + */ + @Required + @Override + public void setDateOfDayOfBirth(Integer dateOfDayOfBirth) { + // TODO Auto-generated method stub + super.setDateOfDayOfBirth(dateOfDayOfBirth); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setEmailAddress(java.lang.String) + */ + @Required + @Override + public void setEmailAddress(String emailAddress) { + // TODO Auto-generated method stub + super.setEmailAddress(emailAddress); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setEmailAddressConfirm(java.lang.String) + */ + @Required + @Override + public void setEmailAddressConfirm(String emailAddressConfirm) { + // TODO Auto-generated method stub + super.setEmailAddressConfirm(emailAddressConfirm); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setFirstname(java.lang.String) + */ + @Required + @Override + public void setFirstname(String firstname) { + // TODO Auto-generated method stub + super.setFirstname(firstname); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setFirstnameDescription(java.lang.String) + */ + @Required + @Override + public void setFirstnameDescription(String firstnameDescription) { + // TODO Auto-generated method stub + super.setFirstnameDescription(firstnameDescription); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setGender(java.lang.String) + */ + @Required + @Override + public void setGender(String gender) { + // TODO Auto-generated method stub + super.setGender(gender); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setLastname(java.lang.String) + */ + @Required + @Override + public void setLastname(String lastname) { + // TODO Auto-generated method stub + super.setLastname(lastname); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setLastnameDescription(java.lang.String) + */ + @Required + @Override + public void setLastnameDescription(String lastnameDescription) { + // TODO Auto-generated method stub + super.setLastnameDescription(lastnameDescription); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setMonthOfDayOfBirth(java.lang.Integer) + */ + @Required + @Override + public void setMonthOfDayOfBirth(Integer monthOfDayOfBirth) { + // TODO Auto-generated method stub + super.setMonthOfDayOfBirth(monthOfDayOfBirth); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setPrimaryPostcode(java.lang.String) + */ + @Required + @Override + public void setPrimaryPostcode(String primaryPostcode) { + // TODO Auto-generated method stub + super.setPrimaryPostcode(primaryPostcode); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setSecondaryPostcode(java.lang.String) + */ + @Required + @Override + public void setSecondaryPostcode(String secondaryPostcode) { + // TODO Auto-generated method stub + super.setSecondaryPostcode(secondaryPostcode); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setState(java.lang.String) + */ + @Required + @Override + public void setState(String state) { + // TODO Auto-generated method stub + super.setState(state); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setStreetAddress(java.lang.String) + */ + @Required + @Override + public void setStreetAddress(String streetAddress) { + // TODO Auto-generated method stub + super.setStreetAddress(streetAddress); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setUserName(java.lang.String) + */ + @Required + @Override + public void setUserName(String userName) { + // TODO Auto-generated method stub + super.setUserName(userName); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setUserSecretAnswer(java.lang.String) + */ + @Required + @Override + public void setUserSecretAnswer(String userSecretAnswer) { + // TODO Auto-generated method stub + super.setUserSecretAnswer(userSecretAnswer); + } + + /* (non-Javadoc) + * @see jp.sf.pal.pompei.web.user.signup.AbstractUsersignupPage#setYearOfDayOfBirth(java.lang.Integer) + */ + @Required + @Override + public void setYearOfDayOfBirth(Integer yearOfDayOfBirth) { + // TODO Auto-generated method stub + super.setYearOfDayOfBirth(yearOfDayOfBirth); + } + +} Property changes on: pompei/portlets/pompei-core/trunk/src/main/java/jp/sf/pal/pompei/web/user/signup/SignupEditPage.java ___________________________________________________________________ Name: svn:eol-style + native Modified: pompei/portlets/pompei-core/trunk/src/main/resources/appMessages.properties =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/resources/appMessages.properties 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/resources/appMessages.properties 2007-10-11 13:29:41 UTC (rev 621) @@ -125,4 +125,22 @@ added.product.to.cart=\u5546\u54c1\u3092\u30ab\u30fc\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002 need.to.register.as.customer=\u30ab\u30fc\u30c8\u3092\u5229\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u4f1a\u54e1\u767b\u9332\u304c\u5fc5\u8981\u3067\u3059\u3002\u4f1a\u54e1\u767b\u9332\u5f8c\u3001\u518d\u5ea6\u3001\u30ab\u30fc\u30c8\u306b\u5546\u54c1\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +# SignupEditAction.java +could.not.read.term.of.service=\u5229\u7528\u898f\u7d04\u304c\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +type.secret.question=\u79d8\u5bc6\u306e\u8cea\u554f\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u79d8\u5bc6\u306e\u8cea\u554f\u3092\u9078\u629e\u307e\u305f\u306f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 +# SignupEditConfirm.java +could.not.encode.secret.password=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +error.lacking.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u5165\u529b\u3057\u305f\u5024\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\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.failed_to_generate_password=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +error.two_passwords_do_not_match=\u78ba\u8a8d\u7528\u30d1\u30b9\u30ef\u30fc\u30c9\u3068\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\u518d\u5ea6\u3001\u8a66\u3057\u3066\u3082\u3001\u3053\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +could.not.access.folder=\u4f1a\u54e1\u7528\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u8a66\u3057\u3066\u3082\u3001\u3053\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +could.not.update.folder=\u4f1a\u54e1\u7528\u30da\u30fc\u30b8\u3092\u66f4\u65b0\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u518d\u5ea6\u3001\u8a66\u3057\u3066\u3082\u3001\u3053\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +error.registration_completed_but_could_not_send=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u3001\u8a66\u3057\u3066\u3082\u3001\u3053\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +error.registration_completed_but_could_not_find_template=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u518d\u5ea6\u3001\u8a66\u3057\u3066\u3082\u3001\u3053\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u5834\u5408\u306b\u306f\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +could.not.create.user.by.system.error=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 +could.not.insert.customer.data=\u30b7\u30b9\u30c6\u30e0\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u7ba1\u7406\u8005\u306b\u304a\u554f\u3044\u5408\u308f\u305b\u304f\u3060\u3055\u3044\u3002 + Added: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit.properties =================================================================== Property changes on: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit_ja.properties =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit_ja.properties 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit_ja.properties 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,4 @@ +# portlet info +javax.portlet.title=\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7 +javax.portlet.short-title=\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7 +javax.portlet.keywords=\u30b5\u30a4\u30f3\u30a2\u30c3\u30d7 Property changes on: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/SignupEdit_ja.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/label.properties =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/label.properties 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/label.properties 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,16 @@ +M=\u7537\u6027 +F=\u5973\u6027 + +state.items=\u5317\u6d77\u9053,\u9752\u68ee\u770c,\u5ca9\u624b\u770c,\u5bae\u57ce\u770c,\u79cb\u7530\u770c,\u5c71\u5f62\u770c,\u798f\u5cf6\u770c,\u8328\u57ce\u770c,\u6803\u6728\u770c,\u7fa4\u99ac\u770c,\u57fc\u7389\u770c,\u5343\u8449\u770c,\u6771\u4eac\u90fd,\u795e\u5948\u5ddd\u770c,\u65b0\u6f5f\u770c,\u5bcc\u5c71\u770c,\u77f3\u5ddd\u770c,\u798f\u4e95\u770c,\u5c71\u68a8\u770c,\u9577\u91ce\u770c,\u5c90\u961c\u770c,\u9759\u5ca1\u770c,\u611b\u77e5\u770c,\u4e09\u91cd\u770c,\u6ecb\u8cc0\u770c,\u4eac\u90fd\u5e9c,\u5927\u962a\u5e9c,\u5175\u5eab\u770c,\u5948\u826f\u770c,\u548c\u6b4c\u5c71\u770c,\u9ce5\u53d6\u770c,\u5cf6\u6839\u770c,\u5ca1\u5c71\u770c,\u5e83\u5cf6\u770c,\u5c71\u53e3\u770c,\u5fb3\u5cf6\u770c,\u9999\u5ddd\u770c,\u611b\u5a9b\u770c,\u9ad8\u77e5\u770c,\u798f\u5ca1\u770c,\u4f50\u8cc0\u770c,\u9577\u5d0e\u770c,\u718a\u672c\u770c,\u5927\u5206\u770c,\u5bae\u5d0e\u770c,\u9e7f\u5150\u5cf6\u770c,\u6c96\u7e04\u770c, + +secretQuestion.num=8 +secretQuestion.1=\u30da\u30c3\u30c8\u3068\u3044\u3048\u3070\uff1f +secretQuestion.2=\u65c5\u884c\u3068\u3044\u3048\u3070\uff1f +secretQuestion.3=\u30d2\u30fc\u30ed\u30fc\u3068\u3044\u3048\u3070\uff1f +secretQuestion.4=\u98df\u3079\u7269\u3068\u3044\u3048\u3070\uff1f +secretQuestion.5=\u30c1\u30fc\u30e0\u3068\u3044\u3048\u3070\uff1f +secretQuestion.6=\u5b66\u6821\u3068\u3044\u3048\u3070\uff1f +secretQuestion.7=\u6620\u753b\u3068\u3044\u3048\u3070\uff1f +secretQuestion.8=\u8a18\u5ff5\u65e5\u3068\u3044\u3048\u3070\uff1f + +email.subject.registration=\u4f1a\u54e1\u767b\u9332\u306e\u78ba\u8a8d \ No newline at end of file Property changes on: pompei/portlets/pompei-core/trunk/src/main/resources/jp/sf/pal/pompei/web/user/signup/label.properties ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +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. +--> +<portlet-app xmlns="http://portals.apache.org/jetspeed" xmlns:js="http://portals.apache.org/jetspeed" xmlns:dc="http://www.purl.org/dc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="pompei-core" version="1.0" xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.1/schemas/jetspeed-portlet.xsd"> + <js:security-constraint-ref>admin</js:security-constraint-ref> + <dc:title>Pompei Core Portlets</dc:title> + <dc:title xml:lang="ja">Pompei Core ポートレット</dc:title> + <dc:creator>PAL Team</dc:creator> + <portlet> + <portlet-name>ProductList</portlet-name> + <js:security-constraint-ref>public-view</js:security-constraint-ref> + <js:metadata name="merge.portal.parameters.with.portlet.parameters">true</js:metadata> + <js:metadata name="merge.portal.parameters.before.portlet.parameters">true</js:metadata> + </portlet> + <portlet> + <portlet-name>CategoryList</portlet-name> + <js:security-constraint-ref>public-view</js:security-constraint-ref> + <js:metadata name="merge.portal.parameters.with.portlet.parameters">true</js:metadata> + <js:metadata name="merge.portal.parameters.before.portlet.parameters">true</js:metadata> + </portlet> + <portlet> + <portlet-name>ProductListInCart</portlet-name> + <js:security-constraint-ref>public-view</js:security-constraint-ref> + </portlet> + <portlet> + <portlet-name>OrderProducts</portlet-name> + <js:security-constraint-ref>public-view</js:security-constraint-ref> + </portlet> + <js:services> + <js:service name="SecurityProvider"/> + <js:service name="UserManager"/> + <js:service name="PageManager"/> + <js:service name="PortalAdministration"/> + <!-- + <js:service name="GroupManager"/> + <js:service name="RoleManager"/> + <js:service name="ApplicationServerManager"/> + <js:service name="DeploymentManager"/> + <js:service name="EntityAccessor"/> + <js:service name="WindowAccessor"/> + <js:service name="PermissionManager"/> + <js:service name="PortalAdministration"/> + <js:service name="PortletFactory"/> + <js:service name="PortletRegistryComponent"/> + <js:service name="PortalStatistics"/> + <js:service name="Profiler"/> + <js:service name="SearchComponent"/> + <js:service name="SSO"/> + <js:service name="DecorationFactory"/> + <js:service name="SecurityAccessController"/> + <js:service name="PortletTrackingManager"/> +--> + <js:service name="AuditActivity"/> + </js:services> +</portlet-app> Property changes on: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/jetspeed-portlet.xml ___________________________________________________________________ Name: svn:eol-style + native Modified: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/portlet.xml =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/portlet.xml 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/portlet.xml 2007-10-11 13:29:41 UTC (rev 621) @@ -408,4 +408,77 @@ </portlet-info> </portlet> <!-- 会員登録 --> + <portlet> + <description>Provides users with the ability register as a new user.</description> + <description xml:lang="ja">会員登録する機能を提供します。</description> + <portlet-name>CustomerSignupPortlet</portlet-name> + <display-name>Pompei: Signup</display-name> + <display-name xml:lang="ja">Pompei: サインアップ</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.pompei.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/user/signup/signupEdit.html</value> + </init-param> + <init-param> + <description>This option will generate a new password for each user registration</description> + <name>jp.sf.pal.pompei.ForceGeneratedPassword</name> + <value>true</value> + </init-param> + <init-param> + <description>This option will force email address to be system wide unique</description> + <name>jp.sf.pal.pompei.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.pompei.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.pompei.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.pompei.EmailTemplateName</name> + <value>userRegistrationEmail.vm</value> + </init-param> + <init-param> + <description>Profiling rules to be assigned at registration.</description> + <name>jp.sf.pal.pompei.RuleNames</name> + <value>page</value> + </init-param> + <init-param> + <description>Profiling rules to be assigned at registration.</description> + <name>jp.sf.pal.pompei.RuleValues</name> + <value>j2</value> + </init-param> + <init-param> + <description>Profiling rules to be assigned at registration.</description> + <name>jp.sf.pal.pompei.SendMail</name> + <value>true</value> + </init-param> + <expiration-cache>0</expiration-cache> + <supports> + <mime-type>text/html</mime-type> + <portlet-mode>VIEW</portlet-mode> + </supports> + <supported-locale>en</supported-locale> + <supported-locale>ja</supported-locale> + <resource-bundle>jp.sf.pal.pompei.web.signup.signupEdit</resource-bundle> + <portlet-info> + <title>Customer Signup</title> + <short-title>Signup</short-title> + <keywords>Signup</keywords> + </portlet-info> + </portlet> </portlet-app> Added: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/term_of_service.txt =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/term_of_service.txt 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/term_of_service.txt 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,5 @@ +利用規約 + +・・・ +・・・ +・・・ Property changes on: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/term_of_service.txt ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/WEB-INF/template/userreg/email/userRegistrationEmail.vm 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,15 @@ +こんにちは、$!{map.get("user.name.family")} $!{map.get("user.name.given")} さん + +Pompei ポータルに登録していただきありがとうございます。 + +ユーザー名: $!{map.get("user.name")} +パスワード: $!{map.get("password")} + +パスワードは、ログインして変更できます。 + +以上をよろしくお願いいたします。 + +--- +Pompei ポータル +http://sourceforge.jp/projects/pal/ + Modified: pompei/portlets/pompei-core/trunk/src/main/webapp/view/index.html =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/view/index.html 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/view/index.html 2007-10-11 13:29:41 UTC (rev 621) @@ -25,6 +25,7 @@ <li><a href="./user/product/categoryList.html">カテゴリリスト</a></li> <li><a href="./user/cart/productList.html">カート確認</a></li> <li><a href="./user/checkout/userInfoEdit.html">注文</a></li> +<li><a href="./user/signup/signupEdit.html">会員登録</a></li> </ul> </form> </body></html> Added: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupComplete.html =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupComplete.html 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupComplete.html 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,55 @@ +<?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" xml:lang="ja" lang="ja"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>会員登録</title> + </head> + <body> + <div style="width:100%;"> + <center> + <div style="width: 80%;text-align: left;"> + <form id="checkoutCompleteForm"> + <div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> + </div> + <br /> + <div style="font-size: 14pt;font-weight: bold;"> 会員登録が完了しました</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>情報</label> + </td> + <td> + <div> + <label>会員登録をありがとうございました。</label> + </div> + <div id="isSendEmail" style="margin: 5px;"> + <strong> + <span id="emailAddress">mail</span> 宛に会員情報を送信しました。 + </strong> + <br/> + メールに記述されている会員情報でログインして、ご利用ください。 + <br/> + メールが届かない場合は、管理者にお問い合わせください。 + </div> + <div id="isNotSendEmail" style="margin: 5px;"> + 登録された会員情報でログインして、ご利用ください。 + <br/> + ログインできない場合は、管理者にお問い合わせください。 + </div> + <br/> + <br/> + <div> + <a id="jumpSignupEdit" href="signupEdit.html">会員登録へ戻る</a> + </div> + </td> + </tr> + </table> + </form> + </div> + </center> + </div> + </body> +</html> Property changes on: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupComplete.html ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupConfirm.html =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupConfirm.html 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupConfirm.html 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,229 @@ +<?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="signupEditForm"> + <div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> + </div> + <div style="width:100%;"> + <center> + <div style="width: 80%;text-align: left;"> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">1.</span> 会員情報を確認してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>会員情報</label> + </td> + <td> + <table> + <tbody> + <tr> + <th align="left"> + <label>ご希望のユーザーID:</label> + </th> + <td> + <span id="userName">abc</span><input id="userName-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>名字:</label> + </th> + <td> + <span id="lastname">abc</span><input id="lastname-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>名前:</label> + </th> + <td> + <span id="firstname">abc</span><input id="firstname-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>名字 (フリガナ):</label> + </th> + <td> + <span id="lastnameDescription">abc</span><input id="lastnameDescription-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>名前 (フリガナ):</label> + </th> + <td> + <span id="firstnameDescription">abc</span><input id="firstnameDescription-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>性別:</label> + </th> + <td> + <span id="genderString">abc</span><input id="gender-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>メールアドレス:</label> + </th> + <td> + <span id="emailAddress">abc</span><input id="emailAddress-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>誕生日:</label> + </th> + <td> + <span id="dayOfBirth">abc</span><input id="dayOfBirth-hidden" type="hidden"/> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </table> + <br /> + <br /> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">2.</span> お届け先を確認してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>お届け先</label> + </td> + <td> + <table> + <tbody> + <tr> + <th align="left"> + <label>郵便番号:</label> + </th> + <td> + <span id="postcode">abc</span><input id="postcode-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>都道府県:</label> + </th> + <td> + <span id="state">abc</span><input id="state-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>郡市区 (島、国):</label> + </th> + <td> + <span id="city">abc</span><input id="city-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>それ以降の住所:</label> + </th> + <td> + <span id="streetAddress">abc</span><input id="streetAddress-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>電話番号:</label> + </th> + <td> + <span id="telephone">abc</span><input id="telephone-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>FAX:</label> + </th> + <td> + <span id="fax">abc</span><input id="fax-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>携帯電話番号:</label> + </th> + <td> + <span id="cellphone">abc</span><input id="cellphone-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>会社名・団体名:</label> + </th> + <td> + <span id="company">abc</span><input id="company-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th align="left"> + <label>部署名・役職:</label> + </th> + <td> + <span id="department">abc</span><input id="department-hidden" type="hidden"/> + </td> + </tr> +<!-- TODO: entry_country_id --> + </tbody> + </table> + </td> + </tr> + </table> + <br /> + <br /> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">3.</span> 秘密の質問と答えを確認してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>秘密の質問と答え</label> + </td> + <td> + <table> + <tbody> + <tr> + <th> + <label>秘密の質問:</label> + </th> + <td> + <span id="userSecretQuestion">abc</span><input id="userSecretQuestion-hidden" type="hidden"/> + </td> + </tr> + <tr> + <th> + <label>秘密の答え:</label> + </th> + <td> + <span id="userSecretAnswer">abc</span><input id="userSecretAnswer-hidden" type="hidden"/> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </table> + </div> + <br/> + <br/> + <div style="text-align:center;"> + <input type="button" id="doCreate" value="上記の情報を登録する" onclick="location.href='signupComplete.html'" /> + <input type="button" id="doCancel" value="再編集する" onclick="location.href='signupComplete.html'" /> + </div> + </center> + </div> + </form> + </body> +</html> Property changes on: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupConfirm.html ___________________________________________________________________ Name: svn:eol-style + native Added: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupEdit.html =================================================================== --- pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupEdit.html 2007-10-11 08:28:54 UTC (rev 620) +++ pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupEdit.html 2007-10-11 13:29:41 UTC (rev 621) @@ -0,0 +1,291 @@ +<?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="signupEditForm"> + <div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> + </div> + <div style="width:100%;"> + <center> + <div style="width: 80%;text-align: left;"> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">1.</span> 会員情報を入力してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>会員情報</label> + </td> + <td> + <table> + <tbody> + <tr> + <th align="left"> + <label>ご希望のユーザーID:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="userName" type="text" class="portlet-form-input-field" size="24" /> + <label id="userIdConditionLabel" class="portlet-form-label">(6〜32字の半角英数字)</label> + </td> + </tr> + <tr> + <th align="left"> + <label>名字:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="lastname" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>名前:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="firstname" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>名字 (フリガナ):</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="lastnameDescription" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>名前 (フリガナ):</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="firstnameDescription" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>性別:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <span id="gender"> + <label><input type="radio" name="gender" value="M" class="portlet-form-field-label" />男性</label> + <label><input type="radio" name="gender" value="F" class="portlet-form-field-label" />女性</label> + </span> + </td> + </tr> + <tr> + <th align="left"> + <label>メールアドレス:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="emailAddress" type="text" class="portlet-form-input-field" size="30" /> + </td> + </tr> + <tr> + <th align="left"> + <label>メールアドレス(確認):</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="emailAddressConfirm" type="text" class="portlet-form-input-field" size="30" /> + </td> + </tr> + <tr> + <th align="left"> + <label>誕生日:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input type="hidden" id="yearOfDayOfBirthItemsSave" /> + <select id="yearOfDayOfBirth" class="portlet-form-input-field"><option>2000</option></select> + / + <input type="hidden" id="monthOfDayOfBirthItemsSave" /> + <select id="monthOfDayOfBirth" class="portlet-form-input-field"><option>1</option></select> + / + <input type="hidden" id="dateOfDayOfBirthItemsSave" /> + <select id="dateOfDayOfBirth" class="portlet-form-input-field"><option>1</option></select> + <!-- input id="dayOfBirth" type="text" class="portlet-form-input-field" /--> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </table> + <br /> + <br /> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">2.</span> お届け先を入力してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>お届け先</label> + </td> + <td> + <table> + <tbody> + <tr> + <th align="left"> + <label>郵便番号:</label> + <font color="#009900">[必須]</font> + </th> + <td><input id="primaryPostcode" type="text" class="portlet-form-input-field" size="3" /> + - + <input id="secondaryPostcode" type="text" class="portlet-form-input-field" size="4" /> + <!-- input id="postcode" type="text" class="portlet-form-input-field" / --> + </td> + </tr> + <tr> + <th align="left"> + <label>都道府県:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input type="hidden" id="stateItemsSave" /> + <select id="state"> + <option value="bbb">hoge</option> + </select> + </td> + </tr> + <tr> + <th align="left"> + <label>郡市区 (島、国):</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="city" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>それ以降の住所:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="streetAddress" type="text" class="portlet-form-input-field" size="40" /> + </td> + </tr> + <tr> + <th align="left"> + <label>電話番号:</label> + </th> + <td> + <input id="telephone" type="text" class="portlet-form-input-field" size="13" /> + </td> + </tr> + <tr> + <th align="left"> + <label>FAX:</label> + </th> + <td> + <input id="fax" type="text" class="portlet-form-input-field" size="13" /> + </td> + </tr> + <tr> + <th align="left"> + <label>携帯電話番号:</label> + </th> + <td> + <input id="cellphone" type="text" class="portlet-form-input-field" size="13" /> + </td> + </tr> + <tr> + <th align="left"> + <label>会社名・団体名:</label> + </th> + <td> + <input id="company" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> + <tr> + <th align="left"> + <label>部署名・役職:</label> + </th> + <td> + <input id="department" type="text" class="portlet-form-input-field" size="20" /> + </td> + </tr> +<!-- TODO: entry_country_id --> + </tbody> + </table> + </td> + </tr> + </table> + <br /> + <br /> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">3.</span> 秘密の質問と答えを入力してください</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td width="10" bgcolor="#ffd153"> </td> + <td width="100" bgcolor="#fff1a1" valign="top" align="center"> + <label>秘密の質問と答え</label> + </td> + <td> + <table> + <tbody> + <tr> + <th> + <label>秘密の質問:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input type="hidden" id="userSecretQuestionSelectionItemsSave" /> + <select id="userSecretQuestionSelection"> + <option>ほげ</option> + </select> + </td> + </tr> + <tr> + <td> </td> + <td> + <label id="otherUserSecretQuestionLabel">上記以外の質問を登録することもできます。</label> + <br /> + <input id="userSecretQuestion" type="text" class="portlet-form-input-field" size="24" /> + </td> + </tr> + <tr> + <th> + <label>秘密の答え:</label> + <font color="#009900">[必須]</font> + </th> + <td> + <input id="userSecretAnswer" type="text" class="portlet-form-input-field" size="24" /> + </td> + </tr> + </tbody> + </table> + </td> + </tr> + </table> + <br /> + <br /> + <div style="font-size: 14pt;font-weight: bold;"><span style="color:#ff9900;">4.</span> 利用規約をご確認ください。</div> + <table style="border-top: 1px solid silver;border-bottom: 1px solid silver;width: 100%;"> + <tr> + <td align="center"> + <div class="portlet-form-label" style="text-align:center;"> + <textarea id="termOfService" wrap="off" cols="80" rows="20" readonly="readonly"> </textarea> + </div> + </td> + </tr> + </table> + </div> + <br/> + <br/> + <div style="text-align:center;"> + <input type="button" id="doConfirm" value="利用規約に同意して登録する" onclick="location.href='signupConfirm.html'" /> + </div> + </center> + </div> + </form> + </body> +</html> Property changes on: pompei/portlets/pompei-core/trunk/src/main/webapp/view/user/signup/signupEdit.html ___________________________________________________________________ Name: svn:eol-style + native