
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