use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat 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.Candidat in project esup-ecandidat by EsupPortail.
the class CandidatController method editCandidat.
/**
* Edition d'un candidat
* @param cptMin
*/
public void editCandidat(final CompteMinima cptMin, final InfoPersoListener listener) {
/* Verrou --> normalement le lock est géré en amont mais on vérifie qd même */
final String lockError = getLockError(cptMin, ConstanteUtils.LOCK_INFOS_PERSO);
if (lockError != null) {
Notification.show(lockError, Type.ERROR_MESSAGE);
return;
}
Candidat candidat = cptMin.getCandidat();
if (candidat == null) {
candidat = new Candidat(cptMin, cacheController.getLangueDefault());
}
final CandidatInfoPersoWindow window = new CandidatInfoPersoWindow(candidat);
window.addCandidatWindowListener((cand, individuApogee, needToDeleteDataApogee) -> {
if (isLockedForImportApo(cand.getCompteMinima())) {
return;
}
Boolean langueChanged = false;
if (userController.isCandidat()) {
langueChanged = i18nController.changeLangue(cand.getLangue());
}
if (individuApogee != null && individuApogee.getAdresse() != null) {
final Adresse adresse = getAdresseByApogeeData(individuApogee.getAdresse());
final Adresse lastAdresse = cand.getAdresse();
if (lastAdresse != null) {
adresse.setIdAdr(lastAdresse.getIdAdr());
}
cand.setAdresse(adresse);
} else if (needToDeleteDataApogee) {
cand.setAdresse(null);
}
/* Calcul de l'INE et clé */
final String ine = MethodUtils.getIne(cand.getIneAndKey());
final String cle = MethodUtils.getCleIne(cand.getIneAndKey());
/* On passe tout en capitale */
cand.setNomPatCandidat(MethodUtils.cleanForApogee(cand.getNomPatCandidat()));
cand.setNomUsuCandidat(MethodUtils.cleanForApogee(cand.getNomUsuCandidat()));
cand.setPrenomCandidat(MethodUtils.cleanForApogee(cand.getPrenomCandidat()));
cand.setAutrePrenCandidat(MethodUtils.cleanForApogee(cand.getAutrePrenCandidat()));
cand.setIneCandidat(MethodUtils.cleanForApogee(ine));
cand.setCleIneCandidat(MethodUtils.cleanForApogee(cle));
cand.setLibVilleNaissCandidat(MethodUtils.cleanForApogee(cand.getLibVilleNaissCandidat()));
final Candidat candidatSave = saveCandidat(cand, individuApogee, null);
candidatSave.setCandidatBacOuEqu(candidatParcoursController.getBacByApogeeData((individuApogee != null) ? individuApogee.getBac() : null, candidatSave, needToDeleteDataApogee));
if (parametreController.getIsGetCursusInterne()) {
candidatSave.setCandidatCursusInternes(candidatParcoursController.getCursusInterne((individuApogee != null) ? individuApogee.getListCursusInterne() : null, candidatSave, needToDeleteDataApogee));
}
/* Synchro des pieces */
if (individuApogee != null) {
/* Individu Apogée non null on synchronise tout */
try {
candidatPieceController.synchronizePJCandidat(candidatSave);
} catch (final Exception e) {
}
} else if (needToDeleteDataApogee) {
/* On supprime les pièces */
candidatPieceController.deletePJCandidat(candidatSave);
}
listener.infoPersoModified(candidatSave, langueChanged);
});
UI.getCurrent().addWindow(window);
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.
the class CandidatController method editAdresse.
/**
* Edite l'adresse d'un candidat
* @param cptMin
* @param listener
*/
public void editAdresse(final CompteMinima cptMin, final AdresseListener listener) {
/* Verrou --> normalement le lock est géré en amont mais on vérifie qd même */
final String lockError = getLockError(cptMin, ConstanteUtils.LOCK_ADRESSE);
if (lockError != null) {
Notification.show(lockError, Type.ERROR_MESSAGE);
return;
}
final Candidat candidat = cptMin.getCandidat();
Adresse adresse = candidat.getAdresse();
if (adresse == null) {
adresse = new Adresse();
}
final CandidatAdresseWindow window = new CandidatAdresseWindow(adresse);
window.addAdresseWindowListener(e -> {
listener.adresseModified(saveAdresse(candidat, e));
});
UI.getCurrent().addWindow(window);
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.
the class CandidatController method isINEPresent.
/**
* Verifie que l'INE saisi n'est pas déjà existant
* @param ineValue
* @param candidat
* @return true si présent, false sinon
*/
public Boolean isINEPresent(final String ineValue, final String cleIneValue, final Candidat candidat) {
if (ineValue == null || ineValue.equals("")) {
return false;
} else {
final Campagne campagneEnCours = campagneController.getCampagneActive();
if (campagneEnCours == null) {
return false;
}
final List<Candidat> liste = candidatRepository.findByIneCandidatIgnoreCaseAndCleIneCandidatIgnoreCaseAndCompteMinimaCampagneCodCamp(ineValue, cleIneValue, campagneEnCours.getCodCamp());
if (liste.size() > 0) {
if (candidat.getIdCandidat() == null) {
Notification.show(applicationContext.getMessage("infoperso.ine.allready.present", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return true;
}
final Optional<Candidat> candOpt = liste.stream().filter(e -> !e.getIdCandidat().equals(candidat.getIdCandidat())).findAny();
if (candOpt.isPresent()) {
Notification.show(applicationContext.getMessage("infoperso.ine.allready.present", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return true;
}
}
}
return false;
}
use of fr.univlorraine.ecandidat.entities.ecandidat.Candidat in project esup-ecandidat by EsupPortail.
the class CandidatureCtrCandController method generateExport.
/**
* Exporte les candidatures
* @param liste
* @param allOptions
* @param optionChecked
* @return le fichier
*/
private OnDemandFile generateExport(final String code, final String libelle, final List<Candidature> liste, final LinkedHashSet<ExportListCandidatureOption> allOptions, final Set<ExportListCandidatureOption> optionChecked, final Boolean temFooter) {
if (liste == null || liste.size() == 0) {
return null;
}
final Map<String, Object> beans = new HashMap<>();
/* Traitement des dates */
liste.forEach(candidature -> {
candidature.setDatCreCandStr(candidature.getDatCreCand().format(formatterDateTime));
candidature.getCandidat().setAdresseCandidatExport(generateAdresse(candidature.getCandidat().getAdresse()));
candidature.getCandidat().setDatNaissanceCandidatStr(MethodUtils.formatDate(candidature.getCandidat().getDatNaissCandidat(), formatterDate));
if (candidature.getLastTypeDecision() != null) {
candidature.getLastTypeDecision().setDatValidTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getDatValidTypeDecCand(), formatterDate));
candidature.getLastTypeDecision().setPreselectStr(getComplementPreselectMail(candidature.getLastTypeDecision()));
candidature.getLastTypeDecision().setPreselectDateTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getPreselectDateTypeDecCand(), formatterDate));
}
candidature.setDatModTypStatutCandStr(MethodUtils.formatDate(candidature.getDatModTypStatutCand(), formatterDateTime));
candidature.setDatReceptDossierCandStr(MethodUtils.formatDate(candidature.getDatReceptDossierCand(), formatterDate));
candidature.setDatTransDossierCandStr(MethodUtils.formatDate(candidature.getDatTransDossierCand(), formatterDateTime));
candidature.setDatCompletDossierCandStr(MethodUtils.formatDate(candidature.getDatCompletDossierCand(), formatterDate));
candidature.setDatAnnulCandStr(MethodUtils.formatDate(candidature.getDatAnnulCand(), formatterDateTime));
candidature.setDatNewConfirmCandStr(MethodUtils.formatDate(candidature.getDatNewConfirmCand(), formatterDate));
candidature.setDatNewRetourCandStr(MethodUtils.formatDate(candidature.getDatNewRetourCand(), formatterDate));
candidature.setDatIncompletDossierCandStr(MethodUtils.formatDate(candidature.getDatIncompletDossierCand(), formatterDate));
candidature.setDatModPjForm(getDatModPjForm(candidature));
/* Tags */
candidature.setTagsStr(formatLongCellSize(candidature.getTags().stream().map(e -> e.getLibTag()).collect(Collectors.joining(" / "))));
/* Bloc note */
if (parametreController.getIsExportBlocNote()) {
candidature.setBlocNoteStr(formatLongCellSize(getPostIt(candidature).stream().map(e -> e.getMessagePostIt()).collect(Collectors.joining(" / "))));
} else {
allOptions.add(new ExportListCandidatureOption("postItHide", applicationContext.getMessage("export.option.postit", null, UI.getCurrent().getLocale())));
}
/* Exoneration */
if (candidature.getSiScolCatExoExt() != null) {
candidature.setCatExoStr(candidature.getSiScolCatExoExt().getDisplayLibelle());
}
candidature.setMntChargeStr(MethodUtils.parseBigDecimalAsString(candidature.getMntChargeCand()));
/* Opi */
if (candidature.getOpi() != null) {
candidature.setDatPassageOpiStr(MethodUtils.formatDate(candidature.getOpi().getDatPassageOpi(), formatterDateTime));
candidature.setCodOpiStr(candidature.getOpi().getCodOpi());
}
/* Definition du dernier etablissement frequenté */
final Candidat candidat = candidature.getCandidat();
String lastEtab = "";
String lastDiplome = "";
String lastLibelleDiplome = "";
Integer annee = 0;
for (final CandidatCursusInterne cursus : candidat.getCandidatCursusInternes()) {
if (cursus.getAnneeUnivCursusInterne() > annee) {
annee = cursus.getAnneeUnivCursusInterne();
lastEtab = applicationContext.getMessage("universite.title", null, UI.getCurrent().getLocale());
lastDiplome = cursus.getLibCursusInterne();
}
}
for (final CandidatCursusPostBac cursus : candidat.getCandidatCursusPostBacs()) {
if (cursus.getAnneeUnivCursus() > annee && cursus.getSiScolEtablissement() != null) {
annee = cursus.getAnneeUnivCursus();
lastEtab = cursus.getSiScolEtablissement().getLibEtb();
lastDiplome = cursus.getSiScolDipAutCur().getLibDac();
lastLibelleDiplome = cursus.getLibCursus();
}
}
candidat.setLastEtab(lastEtab);
candidat.setLastDiplome(lastDiplome);
candidat.setLastLibDiplome(lastLibelleDiplome);
});
if (code != null) {
beans.put("code", code);
}
beans.put("candidatures", liste);
allOptions.stream().forEach(exportOption -> {
addExportOption(exportOption, optionChecked, beans);
});
if (temFooter) {
beans.put("footer", applicationContext.getMessage("export.footer", new Object[] { libelle, liste.size(), formatterDateTime.format(LocalDateTime.now()) }, UI.getCurrent().getLocale()));
} else {
beans.put("footer", "");
}
final String libFile = applicationContext.getMessage("export.nom.fichier", new Object[] { libelle, DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now()) }, UI.getCurrent().getLocale());
return exportController.generateXlsxExport(beans, "candidatures_template", libFile, Arrays.asList(0));
}
Aggregations