Package enterprise.web.tookit.user

Source Code of enterprise.web.tookit.user.UserBean

package enterprise.web.tookit.user;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.ejb.EJBException;
import javax.ejb.Stateless;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.apache.log4j.Logger;

import enterprise.web.tookit.exception.ValidationException;

/**
* @since 09/12/2012
*
* @author regis rocha
*
* @description Session Bean implementation class UserBean
*
*/
@Stateless(mappedName = "/ejb/UserBean")
public class UserBean implements UserBeanRemote {

  /**
   * Default constructor.
   */
  public UserBean() {
  }

  /**
   * LOG
   */
  private transient final Logger LOG = Logger.getLogger(UserBean.class);

  /**
   * Persistence Context credencial
   */
  @PersistenceContext(unitName = "credencial")
  private EntityManager credencial;

  /**
   * Connection Factory jms
   */
  @Resource(mappedName = "ConnectionFactory")
  private QueueConnectionFactory factory;

  /**
   * Queue to recover password
   */
  @Resource(mappedName = "queue/recuperarSenha")
  private Queue queue;

  @Override
  public void createUser(User user) {
    final UserDao dao = new UserDao(credencial);

    final List<UserRole> listRoles = new ArrayList<UserRole>();
    listRoles.add(this.getRoleMaster());

    user.setListUserRoles(listRoles);

    dao.persist(user);
  }

  @Override
  public void updatePasswordUser(User user) {
    // TODO Auto-generated method stub

  }

  @Override
  public void dropUser(User user) {
    // TODO Auto-generated method stub

  }

  @Override
  public void addRolesToUser(User user) {
    // TODO Auto-generated method stub

  }

  @Override
  public void createRoles(User user) {
    // TODO Auto-generated method stub

  }

  /**
   * @since 24/12/2012
   *
   * @author regis rocha
   *
   * @description Verifica se existe algum usuario com o email informado por argumento. Caso ja existe um
   *              valor boolean TRUE sera retornado. Caso contrario ou seja nao exista usuario para o email
   *              informado sera retornado um valor boolean FALSE.
   *
   * @param String
   *
   * @return boolean - FALSE caso NAO exista nenhum usuario com o email informado.
   */
  @Override
  public boolean emailExist(final String email) {
    final UserDao dao = new UserDao(credencial);

    final boolean exist = dao.emailExist(email);

    return exist;
  }

  /**
   * @since 24/01/2013
   *
   * @author regis rocha
   *
   * @desciption Obtem a Role Master, que tera acesso a todas as funcionalidades do sistema.
   *
   * @return UserRole
   */
  @Override
  public UserRole getRoleMaster() {
    final UserDao dao = new UserDao(credencial);

    return dao.getRoleMaster();
  }

  /**
   * @since 27/02/2013
   *
   * @author regis rocha
   *
   * @description Processo de recuperacao de senha, onde sera enviado para uma fila jms que o mesmo ira
   *              acionar a funcionalidade de envio de email para o destinatario previamente cadastrado pelo
   *              usuario.
   *
   * @param String
   *
   * @throws ValidationException
   *             - Caso ocorra algum erro de validacao.
   *
   * @throws JMSException
   */
  @Override
  public void recoverPassword(final String email) throws ValidationException, EJBException {

    if (!this.emailExist(email)) {
      throw new ValidationException("E-mail de Usu�rio n�o existe! Favor Verificar o e-mail informado.");
    }

    try {

      final QueueConnection connection = this.factory.createQueueConnection();

      connection.start();

      final Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);

      final MessageProducer producer = session.createProducer(this.queue);

      final TextMessage message = session.createTextMessage();

      message.setText(email);

      producer.send(message);

      producer.close();
      session.close();
      connection.close();
    } catch (JMSException e) {
      LOG.error("", e);
      throw new EJBException(e.getMessage(), e);
    } catch (Exception e) {
      LOG.error("", e);
      throw new EJBException(e.getMessage(), e);
    }
  }
}
TOP

Related Classes of enterprise.web.tookit.user.UserBean

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.