All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.evasion.plugin.security.UserAuthService Maven / Gradle / Ivy

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evasion.plugin.security;

import com.evasion.entity.security.Group;
import com.evasion.entity.security.User;
import java.util.Date;
import java.util.List;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author sebastien
 */
public class UserAuthService {

    /**
     * LOGGER.
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(
            UserAuthService.class);
    private EntityManager em;

    public UserAuthService(EntityManager em) {
        this.em = em;
    }


    /* Interface pour la gestion des utilisateurs */
    public List listUsers() {
        Query query = em.createNamedQuery(User.FIND_ALL);
        return query.getResultList();
    }

    public User findUserByUserName(String u) {
        User user;
        user = em.find(User.class, u);
        return user;
    }

    public User createUser(User u) {
        UserDetailsAdapter.validGrantedAuthority(u);
        UserDetailsAdapter.encodPassword(u);
        em.persist(u);

        return u;
    }

    public void deleteUser(User u) {
        em.remove(em.merge(u));
    }

    public User updateUser(User u) {
        final User userBDD = em.find(User.class, u.getUsername());
        LOGGER.debug("Mise à jour du user: {}", u.toString());

        LOGGER.debug("Mise à jour du user: {}", userBDD.getLastLogin());
        UserDetailsAdapter.validGrantedAuthority(u);
        if (!userBDD.getPassword().equals(u.getPassword())) {
            UserDetailsAdapter.encodPassword(u);
        }
        return em.merge(u);
    }

    public void updateLastLogin(String userName) {
        final User userBDD = this.findUserByUserName(userName);

        if (userBDD != null) {
            LOGGER.debug("Mise à jour de la date de dernière conneciton du user {}", userName);
            userBDD.setLastLogin(new Date());
            em.merge(userBDD);
        }
    }

    /* Interface pour la gestion des groupes */
    public List listGroups() {
        Query query = em.createNamedQuery("findAllGroups");
        return query.getResultList();
    }

    @TransactionAttribute(TransactionAttributeType.NEVER)
    public Date lastLoginForUser(String login) {
        return this.findUserByUserName(login).getLastLogin();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy