use of fr.univlorraine.ecandidat.entities.ecandidat.Individu in project esup-ecandidat by EsupPortail.
the class UserController method connectOther.
/**
* Connect un membre de commission ou centre cand
* @param username
* le username
* @return le user connecte
*/
private SecurityUser connectOther(final String username) {
if (loadBalancingController.isLoadBalancingCandidatMode()) {
return null;
}
List<GrantedAuthority> authoritiesListe = new ArrayList<>();
final List<DroitProfilInd> listeDroitProfilInd = new ArrayList<>();
final Individu ind = individuController.getIndividu(username);
final PreferenceInd pref = (ind != null ? ind.getPreferenceInd() : null);
if (ind != null) {
// On recherche les profils autorisé (ctrCand ou commission pour
// l'utilisateur suivant son login --> On ajoute à la liste
listeDroitProfilInd.addAll(droitProfilController.searchDroitByLogin(username));
/* Création de la liste d'autorities */
SecurityCentreCandidature ctrCand = null;
SecurityCommission commission = null;
/* On place la commission favorite si elle existe en tete */
if (pref != null && pref.getIdCommPref() != null) {
final Optional<DroitProfilInd> optComm = listeDroitProfilInd.stream().filter(droit -> droit.getCommissionMembre() != null && droit.getCommissionMembre().getCommission() != null && pref.getIdCommPref().equals(droit.getCommissionMembre().getCommission().getIdComm())).findFirst();
if (optComm.isPresent()) {
Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optComm.get()));
}
}
/* On place le centre de candidature favorit si il existe en tete */
if (pref != null && pref.getIdCtrCandPref() != null) {
final Optional<DroitProfilInd> optCtrCand = listeDroitProfilInd.stream().filter(droit -> droit.getGestionnaire() != null && droit.getGestionnaire().getCentreCandidature() != null && pref.getIdCtrCandPref().equals(droit.getGestionnaire().getCentreCandidature().getIdCtrCand())).findFirst();
if (optCtrCand.isPresent()) {
Collections.swap(listeDroitProfilInd, 0, listeDroitProfilInd.indexOf(optCtrCand.get()));
}
}
/* On parcourt la liste */
for (final DroitProfilInd droitProfilInd : listeDroitProfilInd) {
String codeRole = null;
if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidat()) {
codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT;
} else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCandidatLS()) {
codeRole = ConstanteUtils.ROLE_GESTION_CANDIDAT_LS;
} else if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCtrCand()) {
codeRole = ConstanteUtils.ROLE_CENTRE_CANDIDATURE;
final Gestionnaire gestionnaire = droitProfilInd.getGestionnaire();
if (ctrCand == null && gestionnaire != null && gestionnaire.getCentreCandidature() != null && gestionnaire.getCentreCandidature().getTesCtrCand()) {
final List<Integer> listComm = new ArrayList<>();
gestionnaire.getCommissions().forEach(e -> listComm.add(e.getIdComm()));
ctrCand = new SecurityCentreCandidature(droitProfilInd.getGestionnaire().getCentreCandidature(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), individuController.getCodCgeForGestionnaire(gestionnaire, username), false, gestionnaire.getTemAllCommGest(), listComm);
}
} else if (droitProfilInd.getDroitProfil().isDroitProfilCommission()) {
codeRole = ConstanteUtils.ROLE_COMMISSION;
final CommissionMembre membre = droitProfilInd.getCommissionMembre();
if (commission == null && membre != null && membre.getCommission() != null && membre.getCommission().getTesComm() && membre.getCommission().getCentreCandidature().getTesCtrCand()) {
commission = new SecurityCommission(droitProfilInd.getCommissionMembre().getCommission(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), false);
}
}
if (codeRole != null) {
final SimpleGrantedAuthority sga = new SimpleGrantedAuthority(codeRole);
if (!authoritiesListe.contains(sga)) {
authoritiesListe.add(sga);
}
}
}
// gestion des gestionnaires de candidat
authoritiesListe = traiteDroitGestionnaireCandidat(authoritiesListe, ctrCand, commission);
// on verifie qu'il y a bien des droits!
if (authoritiesListe.size() > 0) {
return new SecurityUserGestionnaire(username, getDisplayNameFromLdap(username), authoritiesListe, ctrCand, commission, pref);
}
}
return null;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Individu in project esup-ecandidat by EsupPortail.
the class CentreCandidatureController method addProfilToGestionnaire.
/**
* Ajoute un profil à un gestionnaire
*
* @param ctrCand
*/
public void addProfilToGestionnaire(final CentreCandidature ctrCand) {
/* Verrou */
if (!lockController.getLockOrNotify(ctrCand, null)) {
return;
}
DroitProfilGestionnaireWindow window = new DroitProfilGestionnaireWindow(ctrCand);
window.addDroitProfilGestionnaireListener((individu, droit, loginApo, centreGestion, isAllCommission, listeCommission) -> {
/* Contrôle que le client courant possède toujours le lock */
if (lockController.getLockOrNotify(ctrCand, null)) {
if (droitProfilController.getProfilIndByCentreCandidatureAndLogin(ctrCand, individu).size() == 0) {
Individu ind = individuController.saveIndividu(individu);
DroitProfilInd dpi = droitProfilController.saveProfilInd(ind, droit);
Gestionnaire gest = new Gestionnaire(ctrCand, dpi, loginApo, centreGestion, isAllCommission, listeCommission);
ctrCand.getGestionnaires().add(gest);
centreCandidatureRepository.save(ctrCand);
} else {
Notification.show(applicationContext.getMessage("droitprofilind.gest.allready", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
}
}
});
window.addCloseListener(e -> {
/* Suppression du lock */
lockController.releaseLock(ctrCand);
});
UI.getCurrent().addWindow(window);
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Individu in project esup-ecandidat by EsupPortail.
the class DroitProfilController method deleteDroitProfilInd.
/**
* SUpprime un droitProfilInd et supprime l'individu si il n'a pas d'autre role
*
* @param droitProfilInd
*/
public void deleteDroitProfilInd(final DroitProfilInd droitProfilInd) {
droitProfilIndRepository.delete(droitProfilInd);
Individu individu = individuController.getIndividu(droitProfilInd.getIndividu().getLoginInd());
if (individu != null) {
List<DroitProfilInd> liste = droitProfilIndRepository.findByIndividuLoginInd(individu.getLoginInd());
if (liste != null && liste.size() == 0) {
individuController.deleteIndividu(individu);
}
}
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Individu in project esup-ecandidat by EsupPortail.
the class DroitProfilController method getDroitProfilInds.
/**
* @return liste des getDroitUsersProfils
*/
public List<DroitProfilInd> getDroitProfilInds(final Boolean adminMode) {
List<DroitProfilInd> liste = new ArrayList<>();
if (adminMode) {
DroitProfil droitProfil = new DroitProfil(NomenclatureUtils.DROIT_PROFIL_ADMIN_TECH, NomenclatureUtils.DROIT_PROFIL_ADMIN_TECH, NomenclatureUtils.USER_NOMENCLATURE, NomenclatureUtils.USER_NOMENCLATURE, NomenclatureUtils.TYP_DROIT_PROFIL_ADM, false, true);
Individu ind = new Individu(adminTechnique, adminTechnique, null);
liste.add(new DroitProfilInd(ind, droitProfil));
liste.addAll(droitProfilIndRepository.findByDroitProfilTypProfil(NomenclatureUtils.TYP_DROIT_PROFIL_ADM));
} else {
liste.addAll(droitProfilIndRepository.findByDroitProfilTypProfil(NomenclatureUtils.TYP_DROIT_PROFIL_GEST_CANDIDAT));
liste.addAll(droitProfilIndRepository.findByDroitProfilTypProfil(NomenclatureUtils.TYP_DROIT_PROFIL_GEST_CANDIDAT_LS));
}
return liste;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Individu in project esup-ecandidat by EsupPortail.
the class DroitProfilController method addProfilToUserEnMasse.
/**
* Ajoute un profil à un admin
*/
public void addProfilToUserEnMasse() {
ScolGestCandidatMasseWindow window = new ScolGestCandidatMasseWindow();
window.addDroitProfilMasseListener((listGestionnaire, droitProfil) -> {
ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("droitprofilind.gestcand.window.confirm", new Object[] { droitProfil.getLibProfil(), listGestionnaire.size() }, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(e -> {
listGestionnaire.forEach(gest -> {
Individu ind = gest.getDroitProfilInd().getIndividu();
/*
* Recherche des droits
* Il faut supprimer un éventuel droit de gestionnaire de candidat
*/
List<DroitProfilInd> list = droitProfilIndRepository.findByIndividuLoginInd(ind.getLoginInd());
Optional<DroitProfilInd> droitGestCandLS = list.stream().filter(a -> a.getDroitProfil().getCodProfil().equals(NomenclatureUtils.DROIT_PROFIL_GESTION_CANDIDAT_LS)).findFirst();
Optional<DroitProfilInd> droitGestCand = list.stream().filter(b -> b.getDroitProfil().getCodProfil().equals(NomenclatureUtils.DROIT_PROFIL_GESTION_CANDIDAT)).findFirst();
if (droitGestCandLS.isPresent() && !droitGestCandLS.get().getDroitProfil().getCodProfil().equals(droitProfil.getCodProfil())) {
droitProfilIndRepository.delete(droitGestCandLS.get());
}
if (droitGestCand.isPresent() && !droitGestCand.get().getDroitProfil().getCodProfil().equals(droitProfil.getCodProfil())) {
droitProfilIndRepository.delete(droitGestCand.get());
}
if ((!droitGestCandLS.isPresent() && droitProfil.getCodProfil().equals(NomenclatureUtils.DROIT_PROFIL_GESTION_CANDIDAT_LS)) || (!droitGestCand.isPresent() && droitProfil.getCodProfil().equals(NomenclatureUtils.DROIT_PROFIL_GESTION_CANDIDAT))) {
saveProfilInd(ind, droitProfil);
}
});
window.close();
});
UI.getCurrent().addWindow(confirmWindow);
});
UI.getCurrent().addWindow(window);
}
Aggregations