Package com.moreemrecife.security

Source Code of com.moreemrecife.security.AccessControlBean

package com.moreemrecife.security;

import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.moreemrecife.dao.AccessControlDao;
import com.moreemrecife.dto.FunctionTO;
import com.moreemrecife.dto.GroupTO;
import com.moreemrecife.dto.UserTO;
import com.moreemrecife.jpa.EntityManagerHelper;
import com.moreemrecife.jpa.Function;
import com.moreemrecife.jpa.Group;
import com.moreemrecife.jpa.GroupFunction;
import com.moreemrecife.jpa.User;

/**
* Session Bean implementation class AccessControlBean
*/
@Stateless(mappedName = "ejb.AccessControlBean")
@Remote(AccessControl.class)
public class AccessControlBean implements AccessControl {

    Logger logger = Logger.getLogger(this.getClass().getName());

    //    @Resource
    //    private SessionContext ctx;

    @PersistenceContext(unitName = "RealEstateJPA")
    private EntityManager entityManager;

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

    @Override
    public UserTO retrieveUserInfo(String login) {

        // Disponibiliza o entityManager injetado para o restante da aplica��o
        //        InitialContext ctx;
        try {
            //            ctx = new InitialContext();
            //            EntityManager entityManager = (EntityManager) ctx.lookup("RealEstateJPA");
            EntityManagerHelper.set(entityManager);

            User u = AccessControlDao.selectUser(login);
            UserTO to = convertUserTO(u);

            return to;
        } catch (Exception e) {
            logger.log(Level.SEVERE, "Error on call to retrieveUserInfo()", e);
        }
        return null;
    }

    @Override
    public boolean validateAccess(String login, String password) {
        EntityManagerHelper.set(entityManager);
        User u = AccessControlDao.selectUser(login);
        if (u != null && u.getPassword().equals(password)) // TODO improve the password match routine!!!
            return true;
        return false;
    }

    @Override
    public int saveFunction(FunctionTO to) {
        EntityManagerHelper.set(entityManager);

        Function data = new Function();

        data.setId(to.getId());
        data.setName(to.getName());
        data.setDescription(to.getDescription());
        return AccessControlDao.saveFunction(data);
    }

    /**
     * Converte uma entidade para objeto de transporte.
     * Camada view n�o pode acessar entities.
     * @param dao Objeto da camada de persist�ncia
     * @return objeto convertido
     */
    public static UserTO convertUserTO(User dao) {
        UserTO to = new UserTO();

        to.setEmail(dao.getEmail());
        to.setId(dao.getId());
        to.setLastname(dao.getLastname());
        to.setLogin(dao.getLogin());
        to.setName(dao.getName());
        to.setGroup(convertGroupTO(dao.getGroup()));

        return to;
    }

    /**
     * Converte uma entidade para objeto de transporte.
     * Camada view n�o pode acessar entities.
     * @param dao Objeto da camada de persist�ncia
     * @return objeto convertido
     */
    public static GroupTO convertGroupTO(Group dao) {
        GroupTO to = new GroupTO();

        to.setId(dao.getId());
        to.setName(dao.getName());

        Map<String, FunctionTO> functions = new HashMap<String, FunctionTO>();
        for (GroupFunction gf : dao.getFunctions()) {
            Function f = gf.getFunction();
            functions.put(f.getName(), convertFunctionTO(f));
        }

        to.setFunctions(functions);

        return to;
    }

    /**
     * Converte uma entidade para objeto de transporte.
     * Camada view n�o pode acessar entities.
     * @param dao Objeto da camada de persist�ncia
     * @return objeto convertido
     */
    private static FunctionTO convertFunctionTO(Function f) {
        FunctionTO to = new FunctionTO();

        to.setId(f.getId());
        to.setName(f.getName());

        return to;
    }

    @Override
    /**
     * Just a test
     */
    public int testCall() {
        return 12345;
    }

}
TOP

Related Classes of com.moreemrecife.security.AccessControlBean

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.