pt.uc.dei.aor.projecto8.whiteboard.facades.UsersFacade.java Source code

Java tutorial

Introduction

Here is the source code for pt.uc.dei.aor.projecto8.whiteboard.facades.UsersFacade.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pt.uc.dei.aor.projecto8.whiteboard.facades;

import com.google.common.base.Charsets;
import com.google.common.hash.Hashing;
import javax.annotation.Resource;
import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import pt.uc.dei.aor.projecto8.whiteboard.entities.Groups;
import pt.uc.dei.aor.projecto8.whiteboard.entities.Users;
import pt.uc.dei.aor.projecto8.whiteboard.utilities.MessagesForUser;

/**
 *
 * @author Vitor
 */
@Stateless
public class UsersFacade extends AbstractFacade<Users> {

    @PersistenceContext(unitName = "WhiteboardPU")
    private EntityManager em;

    @Resource
    private SessionContext ctx;

    @Inject
    private GroupsFacade groupsFacade;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsersFacade() {
        super(Users.class);
    }

    public Users findUserByUserName() {

        try {
            return (Users) em.createNamedQuery(Users.findByUsername)
                    .setParameter("username", ctx.getCallerPrincipal().getName()).getSingleResult();
        } catch (NoResultException ex) {
            MessagesForUser.addMessageError("User not found");
            return new Users();
        }
    }

    public void newUser(String nameUser, String passwordUser) {
        Groups groups = new Groups("user", nameUser);
        groupsFacade.create(groups);
        String encrypt = Hashing.sha256().hashString(passwordUser, Charsets.UTF_8).toString();
        Users users = new Users(nameUser, encrypt);
        users.setGroupsGroupid(groups);
        super.create(users);
        groups.getUsersList().add(users);
        groupsFacade.edit(groups);

        //        users.setUsername(nameUser);
        //        users.setPassword(encrypt);
        //        edit(users);

    }

}