Package com.liferay.faces.demos.bean

Source Code of com.liferay.faces.demos.bean.RegistrantBackingBean

/**
* Copyright (c) 2000-2014 Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.faces.demos.bean;

import java.io.Serializable;
import java.util.Locale;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

import com.liferay.faces.demos.model.Registrant;
import com.liferay.faces.demos.service.RegistrantServiceUtil;
import com.liferay.faces.portal.context.LiferayFacesContext;
import com.liferay.faces.util.logging.Logger;
import com.liferay.faces.util.logging.LoggerFactory;

import com.liferay.portal.DuplicateUserEmailAddressException;
import com.liferay.portal.DuplicateUserScreenNameException;
import com.liferay.portal.UserPasswordException;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.PropsKeys;
import com.liferay.portal.kernel.util.PropsUtil;
import com.liferay.portal.model.Company;
import com.liferay.portal.model.PasswordPolicy;
import com.liferay.portal.service.CompanyLocalServiceUtil;


/**
* This is a JSF backing managed-bean for the registrant.xhtml composition.
*
* @author  "Neil Griffin"
*/
@ManagedBean(name = "registrantBackingBean")
@ViewScoped
public class RegistrantBackingBean implements Serializable {

  // serialVersionUID
  private static final long serialVersionUID = 2947548873495692163L;

  // Logger
  private static final Logger logger = LoggerFactory.getLogger(RegistrantBackingBean.class);

  // Injections
  @ManagedProperty(value = "#{registrantModelBean}")
  private transient RegistrantModelBean registrantModelBean;

  // Private Data Members
  private Boolean captchaRendered;

  public void submit(ActionEvent actionEvent) {

    Registrant submittedRegistrant = registrantModelBean.getRegistrant();
    logger.debug("Adding user firstName=[{0}], lastName=[{1}], emailAddress=[{2}], captchaText=[{3}]",
      new Object[] {
        submittedRegistrant.getFirstName(), submittedRegistrant.getLastName(),
        submittedRegistrant.getEmailAddress(), submittedRegistrant.getCaptchaText()
      });

    LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
    long creatorUserId = liferayFacesContext.getUser().getUserId();
    long companyId = liferayFacesContext.getCompanyId();
    Locale locale = liferayFacesContext.getLocale();

    try {
      boolean active = true;
      boolean autoScreenName = false;
      boolean sendEmail = true;
      RegistrantServiceUtil.add(creatorUserId, companyId, locale, submittedRegistrant, active, autoScreenName,
        sendEmail);

      String key = "thank-you-for-registering";
      liferayFacesContext.addGlobalInfoMessage(key, submittedRegistrant.getEmailAddress());
      submittedRegistrant.clearProperties();
    }
    catch (DuplicateUserScreenNameException e) {
      liferayFacesContext.addGlobalErrorMessage("the-screen-name-you-requested-is-already-taken");
    }
    catch (DuplicateUserEmailAddressException e) {
      liferayFacesContext.addGlobalErrorMessage("the-email-address-you-requested-is-already-taken");
    }
    catch (UserPasswordException e) {

      switch (e.getType()) {

      case UserPasswordException.PASSWORD_ALREADY_USED: {
        liferayFacesContext.addGlobalErrorMessage(
          "that-password-has-already-been-used-please-enter-in-a-different-password");

        break;
      }

      case UserPasswordException.PASSWORD_CONTAINS_TRIVIAL_WORDS: {
        liferayFacesContext.addGlobalErrorMessage(
          "that-password-uses-common-words-please-enter-in-a-password-that-is-harder-to-guess-i-e-contains-a-mix-of-numbers-and-letters");

        break;
      }

      case UserPasswordException.PASSWORD_INVALID: {
        liferayFacesContext.addGlobalErrorMessage(
          "that-password-is-invalid-please-enter-in-a-different-password");

        break;
      }

      case UserPasswordException.PASSWORD_LENGTH: {

        try {
          Company company = CompanyLocalServiceUtil.getCompany(companyId);
          PasswordPolicy passwordPolicy = company.getDefaultUser().getPasswordPolicy();
          liferayFacesContext.addGlobalErrorMessage(
            "that-password-is-too-short-or-too-long-please-make-sure-your-password-is-between-x-and-512-characters",
            new Object[] { String.valueOf(passwordPolicy.getMinLength()) });

        }
        catch (Exception e1) {
          logger.error(e.getMessage(), e);
          liferayFacesContext.addGlobalUnexpectedErrorMessage();
        }

        break;
      }

      case UserPasswordException.PASSWORD_NOT_CHANGEABLE: {
        liferayFacesContext.addGlobalErrorMessage("your-password-cannot-be-changed");

        break;
      }

      case UserPasswordException.PASSWORD_SAME_AS_CURRENT: {
        liferayFacesContext.addGlobalErrorMessage(
          "your-new-password-cannot-be-the-same-as-your-old-password-please-enter-in-a-different-password");

        break;
      }

      case UserPasswordException.PASSWORD_TOO_TRIVIAL: {
        liferayFacesContext.addGlobalErrorMessage("that-password-is-too-trivial");

        break;
      }

      case UserPasswordException.PASSWORD_TOO_YOUNG: {

        try {
          Company company = CompanyLocalServiceUtil.getCompany(companyId);
          PasswordPolicy passwordPolicy = company.getDefaultUser().getPasswordPolicy();
          liferayFacesContext.addGlobalErrorMessage(
            "you-cannot-change-your-password-yet-please-wait-at-least-x-before-changing-your-password-again",
            new Object[] { String.valueOf(passwordPolicy.getMinAge() * 1000) });

        }
        catch (Exception e1) {
          logger.error(e.getMessage(), e);
          liferayFacesContext.addGlobalUnexpectedErrorMessage();
        }

        break;
      }

      case UserPasswordException.PASSWORDS_DO_NOT_MATCH: {
        liferayFacesContext.addGlobalErrorMessage(
          "the-passwords-you-entered-do-not-match-each-other-please-re-enter-your-password");

        break;
      }

      default: {
        break;
      }
      }
    }
    catch (Exception e) {
      logger.error(e.getMessage(), e);
      liferayFacesContext.addGlobalUnexpectedErrorMessage();
    }
  }

  public boolean isCaptchaRendered() {

    if (captchaRendered == null) {
      captchaRendered = Boolean.valueOf(GetterUtil.getBoolean(
            PropsUtil.get(PropsKeys.CAPTCHA_CHECK_PORTAL_CREATE_ACCOUNT)));
    }

    return captchaRendered.booleanValue();
  }

  public void setRegistrantModelBean(RegistrantModelBean registrantModelBean) {

    // Injected via @ManagedProperty annotation
    this.registrantModelBean = registrantModelBean;
  }

}
TOP

Related Classes of com.liferay.faces.demos.bean.RegistrantBackingBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.