use of fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature in project esup-ecandidat by EsupPortail.
the class UserController method getSecurityCentreCandidature.
/**
* Renvoi le centre de candidature à rattacher à l'utilisateur
* @param id
* l'id du ctrCand
* @param username
* le user
* @return L'element de connexion ctrCand
*/
private SecurityCentreCandidature getSecurityCentreCandidature(final Integer id, final String username) {
for (final DroitProfilInd droitProfilInd : droitProfilController.searchDroitByLoginAndIdCtrCand(id, username)) {
if (droitProfilInd.getDroitProfil().isDroitProfilGestionnaireCtrCand()) {
final Gestionnaire gestionnaire = droitProfilInd.getGestionnaire();
if (gestionnaire != null && gestionnaire.getCentreCandidature() != null && gestionnaire.getCentreCandidature().getTesCtrCand()) {
final List<Integer> listComm = new ArrayList<>();
gestionnaire.getCommissions().forEach(e -> listComm.add(e.getIdComm()));
return new SecurityCentreCandidature(droitProfilInd.getGestionnaire().getCentreCandidature(), new ArrayList<>(droitProfilInd.getDroitProfil().getDroitProfilFoncs()), individuController.getCodCgeForGestionnaire(gestionnaire, username), false, gestionnaire.getTemAllCommGest(), listComm);
}
}
}
return null;
}
use of fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature 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.services.security.SecurityCentreCandidature in project esup-ecandidat by EsupPortail.
the class UserController method setCentreCandidature.
/**
* change le centre de candidature préféré
* @param centreCand
* le centre de candidature
*/
public void setCentreCandidature(final CentreCandidature centreCand) {
final UserDetails details = getCurrentUser();
if (details instanceof SecurityUserGestionnaire) {
if (centreCand == null) {
((SecurityUserGestionnaire) details).setCentreCandidature(null);
} else {
if (isScolCentrale()) {
((SecurityUserGestionnaire) details).setCentreCandidature(new SecurityCentreCandidature(centreCand, null, null, true, true, new ArrayList<Integer>()));
} else {
final SecurityCentreCandidature centre = getSecurityCentreCandidature(centreCand.getIdCtrCand(), getCurrentUserLogin());
((SecurityUserGestionnaire) details).setCentreCandidature(centre);
}
/* On modifie les preferences de l'utilisateur */
preferenceController.setPrefCentreCandidature(centreCand);
}
}
return;
}
use of fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature in project esup-ecandidat by EsupPortail.
the class MainUI method buildMenuCtrCand.
/**
* Construit le menu centre de candidature
*/
private void buildMenuCtrCand(final Authentication auth) {
itemMenuCtrCand.removeAllButtons();
viewAccordionCtrCand.forEach((key, value) -> {
viewButtons.remove(key);
viewAccordion.remove(key);
});
viewAccordionCtrCand.clear();
final SecurityCentreCandidature centreCandidature = userController.getCentreCandidature(auth);
if (centreCandidature != null) {
idCtrCandEnCours = centreCandidature.getIdCtrCand();
final OneClickButton ctrCandBtn = constructCtrCandChangeBtn(centreCandidature.getLibCtrCand());
ctrCandBtn.setDescription(applicationContext.getMessage("ctrCand.window.change", new Object[] { centreCandidature.getLibCtrCand() }, getLocale()));
itemMenuCtrCand.addButton(ctrCandBtn);
final Boolean isScolCentrale = userController.isScolCentrale(auth);
final List<DroitProfilFonc> listFonctionnalite = centreCandidature.getListFonctionnalite();
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_PARAM)) {
final LinkedList<SubMenu> subMenuParam = new LinkedList<>();
subMenuParam.add(new SubMenu(CtrCandParametreView.NAME, FontAwesome.COG));
subMenuParam.add(new SubMenu(CtrCandTagView.NAME, FontAwesome.TAGS));
addItemMenu(applicationContext.getMessage("param.menus.title", null, getLocale()), CtrCandStatFormView.NAME, FontAwesome.COGS, subMenuParam, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandParametreView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandTagView.NAME, (String) itemMenuCtrCand.getData());
}
/* Stats */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_STATS)) {
final LinkedList<SubMenu> subMenuStats = new LinkedList<>();
subMenuStats.add(new SubMenu(CtrCandStatFormView.NAME, FontAwesome.BAR_CHART));
subMenuStats.add(new SubMenu(CtrCandStatCommView.NAME, FontAwesome.PIE_CHART));
addItemMenu(applicationContext.getMessage("stat.menus.title", null, getLocale()), CtrCandStatFormView.NAME, FontAwesome.LINE_CHART, subMenuStats, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandStatFormView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandStatCommView.NAME, (String) itemMenuCtrCand.getData());
}
/* Paramétrage CC */
if (userController.isMenuParamCCOpen(idCtrCandEnCours) && hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_PARAM_CC)) {
final LinkedList<SubMenu> subMenuParamCC = new LinkedList<>();
subMenuParamCC.add(new SubMenu(CtrCandMailTypeDecView.NAME, FontAwesome.ENVELOPE));
subMenuParamCC.add(new SubMenu(CtrCandTypeDecisionView.NAME, FontAwesome.GAVEL));
subMenuParamCC.add(new SubMenu(CtrCandMotivAvisView.NAME, FontAwesome.BALANCE_SCALE));
addItemMenu(applicationContext.getMessage("paramDecision.menus.title", null, getLocale()), CtrCandTypeDecisionView.NAME, FontAwesome.GAVEL, subMenuParamCC, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandMailTypeDecView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandTypeDecisionView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandMotivAvisView.NAME, (String) itemMenuCtrCand.getData());
}
/* Commission */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_COMMISSION)) {
addItemMenu(applicationContext.getMessage(CtrCandCommissionView.NAME + ".title", null, getLocale()), CtrCandCommissionView.NAME, FontAwesome.CALENDAR, null, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandCommissionView.NAME, (String) itemMenuCtrCand.getData());
}
/* PJ */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_PJ)) {
final LinkedList<SubMenu> subMenuPj = new LinkedList<>();
subMenuPj.add(new SubMenu(CtrCandPieceJustifView.NAME, FontAwesome.FILE_TEXT_O));
subMenuPj.add(new SubMenu(CtrCandPieceJustifCommunView.NAME, FontAwesome.FILES_O));
addItemMenu(applicationContext.getMessage(CtrCandPieceJustifView.NAME + ".title", null, getLocale()), CtrCandPieceJustifView.NAME, FontAwesome.FILE_TEXT_O, subMenuPj, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandPieceJustifView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandPieceJustifCommunView.NAME, (String) itemMenuCtrCand.getData());
}
/* Formulaires */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_FORMULAIRE)) {
final LinkedList<SubMenu> subMenuForm = new LinkedList<>();
subMenuForm.add(new SubMenu(CtrCandFormulaireView.NAME, FontAwesome.FILE_ZIP_O));
subMenuForm.add(new SubMenu(CtrCandFormulaireCommunView.NAME, FontAwesome.FILES_O));
addItemMenu(applicationContext.getMessage(CtrCandFormulaireView.NAME + ".title", null, getLocale()), CtrCandFormulaireView.NAME, FontAwesome.FILE_ZIP_O, subMenuForm, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandFormulaireView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandFormulaireCommunView.NAME, (String) itemMenuCtrCand.getData());
}
/* Formation */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_FORMATION)) {
addItemMenu(applicationContext.getMessage(CtrCandFormationView.NAME + ".title", null, getLocale()), CtrCandFormationView.NAME, FontAwesome.LEAF, null, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandFormationView.NAME, (String) itemMenuCtrCand.getData());
}
/* Candidatures */
if (hasAccessToFonctionnalite(isScolCentrale, listFonctionnalite, NomenclatureUtils.FONCTIONNALITE_GEST_CANDIDATURE)) {
final LinkedList<SubMenu> subMenuCandidatures = new LinkedList<>();
subMenuCandidatures.add(new SubMenu(CtrCandCandidatureView.NAME, FontAwesome.BRIEFCASE));
subMenuCandidatures.add(new SubMenu(CtrCandCandidatureCanceledView.NAME, FontAwesome.WARNING));
subMenuCandidatures.add(new SubMenu(CtrCandCandidatureArchivedView.NAME, FontAwesome.FOLDER_OPEN));
addItemMenu(applicationContext.getMessage(CtrCandCandidatureView.NAME + ".title", null, getLocale()), CtrCandCandidatureView.NAME, FontAwesome.BRIEFCASE, subMenuCandidatures, itemMenuCtrCand);
viewAccordionCtrCand.put(CtrCandCandidatureView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandCandidatureCanceledView.NAME, (String) itemMenuCtrCand.getData());
viewAccordionCtrCand.put(CtrCandCandidatureArchivedView.NAME, (String) itemMenuCtrCand.getData());
/* L'utilisateur a accès aux ecran de candidature-->on ajoute les css */
initAlertSva();
}
} else {
final OneClickButton ctrCandBtn = constructCtrCandChangeBtn(applicationContext.getMessage("ctrCand.window.change.default", null, getLocale()));
itemMenuCtrCand.addButton(ctrCandBtn);
}
}
use of fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature in project esup-ecandidat by EsupPortail.
the class CentreCandidatureController method saveCentreCandidature.
/**
* Enregistre un centreCandidature
*
* @param centreCandidature
* @return le centreCandidature
*/
public CentreCandidature saveCentreCandidature(CentreCandidature centreCandidature) {
Assert.notNull(centreCandidature, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
/* Verrou */
if (centreCandidature.getIdCtrCand() != null && !lockController.getLockOrNotify(centreCandidature, null)) {
return null;
}
/* Enregistrement du centre de candidature */
centreCandidature.setUserModCtrCand(userController.getCurrentUserLogin());
centreCandidature = centreCandidatureRepository.saveAndFlush(centreCandidature);
offreFormationController.addCtrCand(centreCandidature);
/* on controle qu'on ne desactive pas le centre de candidature en cours */
controlDisableOrDeleteCtrCandEnCours(centreCandidature, false);
/* Si tes à non : Suppression dans l'offre */
if (!centreCandidature.getTesCtrCand()) {
offreFormationController.removeCtrCand(centreCandidature);
}
/*On recharge le menu du centre, si celui ci est le meme que celui en session car on a pu modifier le paramCC*/
SecurityCentreCandidature ctrSession = userController.getCentreCandidature();
if (ctrSession != null && ctrSession.getIdCtrCand() != null && ctrSession.getIdCtrCand().equals(centreCandidature.getIdCtrCand())) {
MainUI.getCurrent().buildMenuCtrCand();
}
lockController.releaseLock(centreCandidature);
return centreCandidature;
}
Aggregations