Kenmegne
7 days ago 23a46b4be35277e06ec89f48730eeb694e686be8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.megatim.fdxconsultation.dao.impl.administration;
 
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
 
import com.bekosoftware.genericdaolayer.dao.impl.AbstractGenericDAO;
import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer;
import com.megatim.commons.tools.CommonsTools;
import com.megatim.fdxcommons.model.enumeration.TypeOperation;
import com.megatim.fdxconsultation.dao.ifaces.administration.UserDAO;
import com.megatim.fdxconsultation.model.administration.Role;
import com.megatim.fdxconsultation.model.administration.User;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.enterprise.context.Dependent;
 
@Dependent
public class UserDAOImpl extends AbstractGenericDAO<User, Long> implements UserDAO {
 
    @PersistenceContext(unitName = "fdxConsultationPersistenceUnit")
    protected EntityManager em;
 
    public UserDAOImpl() {
    }
 
    @Override
    public EntityManager getEntityManager() {
        return em;
    }
 
    @Override
    public Class<User> getManagedEntityClass() {
        return (User.class);
    }
 
    @Override
    public User getById(Long id) {
        Optional<User> optional = em.createQuery("SELECT u from User u"
                + " LEFT JOIN FETCH u.typeFichiers "
                + " WHERE u.id = :id")
                .setParameter("id", id)
                .getResultList()
                .stream()
                .findFirst();;
        return optional.isPresent() ? optional.get() : null;
    }
 
    @Override
    public User getCurrentUser() {
        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
        return filter(requeteur.getPredicats(), null, null, 0, 1).stream().findAny().orElse(null);
    }
 
    @Override
    public User recuperUtilisateur(String username, String motDePasse) {
        //Variables
        List<User> resutlats = null;
        User user = null;
        boolean isCorrect = false;
        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
 
        //On construit la requete
        requeteur.addEq("userName", username);
        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
 
        //On execute la requte
        resutlats = filter(requeteur.getPredicats(), null, null, 0, 1);
 
        //Si liste non vide
        if (resutlats != null && !resutlats.isEmpty()) {
 
            try {
 
                //On recupere le user
                user = resutlats.get(0);
 
                //On verifie si le mot de passe est correct
                isCorrect = CommonsTools.validerMotDePasse(motDePasse, user.getPwd());
 
                //Si incorrect
                if (!isCorrect) {
 
                    //Utilisateur non trouvé
                    user = null;
 
                }
 
            } catch (Exception ex) {
 
                //On affiche l'erreur
                ex.printStackTrace();
 
            }
 
        }
 
        return user;
    }
 
    @Override
    public User recuperUtilisateur(String username) {
        Optional<User> optional = em.createQuery("SELECT u from User u"
                + " LEFT JOIN FETCH u.typeFichiers "
                + " LEFT JOIN FETCH u.participants "
                + " WHERE u.userName = :username AND u.typeOperation = :typeOperation")
                .setParameter("username", username)
                .setParameter("typeOperation", TypeOperation.AJOUTER)
                .getResultList()
                .stream()
                .findFirst();
        return optional.isPresent() ? optional.get() : null;
    }
 
    @Override
    public List<User> obtenirListeUtilisateursRole(Role role) {
 
        //variables
        List<User> utilisateurs = null;
        RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
 
        //On construit la requete
        requeteur.addEq("role", role);
        requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
 
        //On execute la requte
        utilisateurs = filter(requeteur.getPredicats(), null, null, 0, -1);
 
        //Si liste null
        if (utilisateurs == null) {
 
            //On crée une instance vide
            utilisateurs = new ArrayList<User>();
 
        }
 
        return utilisateurs;
    }
}