Search in sources :

Example 1 with CommissionMembre

use of fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre 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;
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) UserDetailsService(org.springframework.security.core.userdetails.UserDetailsService) UI(com.vaadin.ui.UI) HttpSessionSecurityContextRepository(org.springframework.security.web.context.HttpSessionSecurityContextRepository) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) MethodInvocation(org.aopalliance.intercept.MethodInvocation) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) CustomException(fr.univlorraine.ecandidat.utils.CustomException) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Page(com.vaadin.server.Page) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) SecurityContextHolder(org.springframework.security.core.context.SecurityContextHolder) PasswordHashService(fr.univlorraine.ecandidat.services.security.PasswordHashService) ConfigAttribute(org.springframework.security.access.ConfigAttribute) Droit(fr.univlorraine.ecandidat.services.security.SecurityFonc.Droit) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Predicate(java.util.function.Predicate) SecurityCtrCandFonc(fr.univlorraine.ecandidat.services.security.SecurityCtrCandFonc) Collection(java.util.Collection) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) Resource(javax.annotation.Resource) MethodSecurityInterceptor(org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor) SecurityUser(fr.univlorraine.ecandidat.services.security.SecurityUser) GrantedAuthority(org.springframework.security.core.GrantedAuthority) List(java.util.List) Type(com.vaadin.ui.Notification.Type) DroitProfilFonc(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilFonc) SecurityContext(org.springframework.security.core.context.SecurityContext) Optional(java.util.Optional) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) UsernamePasswordAuthenticationToken(org.springframework.security.authentication.UsernamePasswordAuthenticationToken) Authentication(org.springframework.security.core.Authentication) View(com.vaadin.navigator.View) MainUI(fr.univlorraine.ecandidat.MainUI) MethodInvocationUtils(org.springframework.security.util.MethodInvocationUtils) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) PeopleLdap(fr.univlorraine.ecandidat.services.ldap.PeopleLdap) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) UserDetails(org.springframework.security.core.userdetails.UserDetails) SwitchUserFilter(org.springframework.security.web.authentication.switchuser.SwitchUserFilter) SecurityAuthenticationProvider(fr.univlorraine.ecandidat.services.security.SecurityAuthenticationProvider) AccessDeniedException(org.springframework.security.access.AccessDeniedException) ApplicationContext(org.springframework.context.ApplicationContext) SecurityUserCandidat(fr.univlorraine.ecandidat.services.security.SecurityUserCandidat) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) InsufficientAuthenticationException(org.springframework.security.authentication.InsufficientAuthenticationException) Component(org.springframework.stereotype.Component) SecurityCommissionFonc(fr.univlorraine.ecandidat.services.security.SecurityCommissionFonc) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) Collections(java.util.Collections) Assert(org.springframework.util.Assert) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) GrantedAuthority(org.springframework.security.core.GrantedAuthority) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) ArrayList(java.util.ArrayList) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire) SimpleGrantedAuthority(org.springframework.security.core.authority.SimpleGrantedAuthority) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) SecurityCentreCandidature(fr.univlorraine.ecandidat.services.security.SecurityCentreCandidature) SecurityCommission(fr.univlorraine.ecandidat.services.security.SecurityCommission) PreferenceInd(fr.univlorraine.ecandidat.entities.ecandidat.PreferenceInd) Gestionnaire(fr.univlorraine.ecandidat.entities.ecandidat.Gestionnaire) SecurityUserGestionnaire(fr.univlorraine.ecandidat.services.security.SecurityUserGestionnaire)

Example 2 with CommissionMembre

use of fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre in project esup-ecandidat by EsupPortail.

the class CtrCandCommissionView method init.

/**
 * Initialise la vue
 */
@PostConstruct
public void init() {
    /* Style */
    setSizeFull();
    setMargin(true);
    setSpacing(true);
    /* Récupération du centre de canidature en cours */
    securityCtrCandFonc = userController.getCtrCandFonctionnalite(NomenclatureUtils.FONCTIONNALITE_GEST_COMMISSION);
    if (securityCtrCandFonc.hasNoRight()) {
        return;
    }
    /* Table des centres de candidatures */
    VerticalLayout commissionLayout = new VerticalLayout();
    commissionLayout.setSizeFull();
    commissionLayout.setSpacing(true);
    /* Titre */
    Label titleParam = new Label(applicationContext.getMessage("commission.title", new Object[] { securityCtrCandFonc.getCtrCand().getLibCtrCand() }, UI.getCurrent().getLocale()));
    titleParam.addStyleName(StyleConstants.VIEW_TITLE);
    commissionLayout.addComponent(titleParam);
    /* Boutons */
    HorizontalLayout buttonsLayout = new HorizontalLayout();
    buttonsLayout.setWidth(100, Unit.PERCENTAGE);
    buttonsLayout.setSpacing(true);
    commissionLayout.addComponent(buttonsLayout);
    OneClickButton btnNew = new OneClickButton(applicationContext.getMessage("commission.btnNouveau", null, UI.getCurrent().getLocale()), FontAwesome.PLUS);
    btnNew.setEnabled(true);
    btnNew.addClickListener(e -> {
        commissionController.editNewCommission(securityCtrCandFonc.getCtrCand());
    });
    buttonsLayout.addComponent(btnNew);
    buttonsLayout.setComponentAlignment(btnNew, Alignment.MIDDLE_LEFT);
    if (!securityCtrCandFonc.getIsGestAllCommission()) {
        btnNew.setEnabled(false);
        btnNew.setDescription(applicationContext.getMessage("commission.create.disable", null, UI.getCurrent().getLocale()));
    }
    OneClickButton btnEdit = new OneClickButton(applicationContext.getMessage("btnEdit", null, UI.getCurrent().getLocale()), FontAwesome.PENCIL);
    btnEdit.setEnabled(false);
    btnEdit.addClickListener(e -> {
        if (commissionTable.getValue() instanceof Commission) {
            commissionController.editCommission((Commission) commissionTable.getValue(), true);
        }
    });
    buttonsLayout.addComponent(btnEdit);
    buttonsLayout.setComponentAlignment(btnEdit, Alignment.MIDDLE_CENTER);
    OneClickButton btnDelete = new OneClickButton(applicationContext.getMessage("btnDelete", null, UI.getCurrent().getLocale()), FontAwesome.TRASH_O);
    btnDelete.setEnabled(false);
    btnDelete.addClickListener(e -> {
        if (commissionTable.getValue() instanceof Commission) {
            commissionController.deleteCommission((Commission) commissionTable.getValue());
        }
    });
    buttonsLayout.addComponent(btnDelete);
    buttonsLayout.setComponentAlignment(btnDelete, Alignment.MIDDLE_RIGHT);
    Button btnExport = new Button(applicationContext.getMessage("btnExport", null, UI.getCurrent().getLocale()), FontAwesome.FILE_EXCEL_O);
    /* Export de la liste des formations */
    btnExport.setDescription(applicationContext.getMessage("btnExport", null, UI.getCurrent().getLocale()));
    btnExport.setDisableOnClick(true);
    new OnDemandFileDownloader(new OnDemandStreamFile() {

        @Override
        public OnDemandFile getOnDemandFile() {
            @SuppressWarnings("unchecked") List<Commission> listeCommission = (List<Commission>) commissionTable.getContainerDataSource().getItemIds();
            if (listeCommission.size() == 0) {
                btnExport.setEnabled(true);
                return null;
            }
            /* Téléchargement */
            OnDemandFile file = commissionController.generateExport(listeCommission, securityCtrCandFonc);
            if (file != null) {
                btnExport.setEnabled(true);
                return file;
            }
            btnExport.setEnabled(true);
            return null;
        }
    }, btnExport);
    buttonsLayout.addComponent(btnExport);
    buttonsLayout.setComponentAlignment(btnExport, Alignment.MIDDLE_RIGHT);
    /* Table des commissions */
    BeanItemContainer<Commission> container = new BeanItemContainer<>(Commission.class, commissionController.getCommissionsByCtrCand(securityCtrCandFonc.getCtrCand(), securityCtrCandFonc.getIsGestAllCommission(), securityCtrCandFonc.getListeIdCommission()));
    commissionTable.setContainerDataSource(container);
    commissionTable.addBooleanColumn(Commission_.tesComm.getName());
    commissionTable.addBooleanColumn(Commission_.temEditLettreComm.getName());
    commissionTable.setSortContainerPropertyId(Commission_.codComm.getName());
    commissionTable.setColumnCollapsingAllowed(true);
    commissionTable.setColumnReorderingAllowed(true);
    commissionTable.setSelectable(true);
    commissionTable.setImmediate(true);
    commissionTable.addItemSetChangeListener(e -> commissionTable.sanitizeSelection());
    commissionTable.addValueChangeListener(e -> {
        /* Les boutons d'édition et de suppression de commission sont actifs seulement si une commission est sélectionnée. */
        boolean commissionIsSelected = commissionTable.getValue() instanceof Commission;
        btnEdit.setEnabled(commissionIsSelected);
        btnDelete.setEnabled(commissionIsSelected);
        btnNewMembre.setEnabled(commissionIsSelected);
        if (commissionIsSelected) {
            majMembreTable((Commission) commissionTable.getValue());
        } else {
            majMembreTable(null);
        }
    });
    if (!fileController.getModeDematBackoffice().equals(ConstanteUtils.TYPE_FICHIER_STOCK_NONE)) {
        commissionTable.addGeneratedColumn(PieceJustif_.fichier.getName(), new ColumnGenerator() {

            /**
             * serialVersionUID
             */
            private static final long serialVersionUID = -1750183076315269277L;

            @Override
            public Object generateCell(final Table source, final Object itemId, final Object columnId) {
                final Commission commission = (Commission) itemId;
                if (commission.getFichier() == null) {
                    if (securityCtrCandFonc.isWrite()) {
                        OneClickButton btnAdd = new OneClickButton(FontAwesome.PLUS);
                        btnAdd.addStyleName(StyleConstants.ON_DEMAND_FILE_LAYOUT);
                        btnAdd.setDescription(applicationContext.getMessage("file.btnAdd", null, UI.getCurrent().getLocale()));
                        btnAdd.addClickListener(e -> commissionController.addFileToSignataire(commission));
                        return btnAdd;
                    }
                    return null;
                } else {
                    OnDemandFileLayout fileLayout = new OnDemandFileLayout(commission.getFichier().getNomFichier());
                    /* Delete */
                    if (securityCtrCandFonc.isWrite()) {
                        fileLayout.addBtnDelClickListener(e -> commissionController.deleteFileToSignataire(commission));
                    }
                    /* Show */
                    fileLayout.addBtnViewerClickListener(e -> {
                        OnDemandFile file = new OnDemandFile(commission.getFichier().getNomFichier(), fileController.getInputStreamFromFichier(commission.getFichier()));
                        ImageViewerWindow iv = new ImageViewerWindow(file, applicationContext.getMessage("commission.signataire.warning", null, UI.getCurrent().getLocale()));
                        UI.getCurrent().addWindow(iv);
                    });
                    /* Download */
                    fileLayout.addBtnDownloadFileDownloader(new OnDemandStreamFile() {

                        @Override
                        public OnDemandFile getOnDemandFile() {
                            return new OnDemandFile(commission.getFichier().getNomFichier(), fileController.getInputStreamFromFichier(commission.getFichier()));
                        }
                    });
                    return fileLayout;
                }
            }
        });
        FIELDS_ORDER = FIELDS_ORDER_FILE;
    } else {
        FIELDS_ORDER = FIELDS_ORDER_NO_FILE;
    }
    commissionTable.setVisibleColumns((Object[]) FIELDS_ORDER);
    for (String fieldName : FIELDS_ORDER) {
        commissionTable.setColumnHeader(fieldName, applicationContext.getMessage("commission.table." + fieldName, null, UI.getCurrent().getLocale()));
    }
    commissionLayout.addComponent(commissionTable);
    commissionLayout.setExpandRatio(commissionTable, 1);
    commissionTable.setSizeFull();
    addComponent(commissionLayout);
    setExpandRatio(commissionLayout, 3);
    /* Commission Membre */
    VerticalLayout commissionMembreLayout = new VerticalLayout();
    commissionMembreLayout.setSizeFull();
    commissionMembreLayout.setSpacing(true);
    /* Titre */
    HorizontalLayout layoutMembreLabel = new HorizontalLayout();
    layoutMembreLabel.setSpacing(true);
    Label titleMembre = new Label(applicationContext.getMessage("commission.title.membre", null, UI.getCurrent().getLocale()));
    titleMembre.addStyleName(StyleConstants.VIEW_SUBTITLE);
    layoutMembreLabel.addComponent(titleMembre);
    layoutMembreLabel.setComponentAlignment(titleMembre, Alignment.BOTTOM_LEFT);
    labelMembre.setValue(applicationContext.getMessage("commission.membre.nocomm", null, UI.getCurrent().getLocale()));
    labelMembre.addStyleName(ValoTheme.LABEL_SMALL);
    layoutMembreLabel.addComponent(labelMembre);
    layoutMembreLabel.setComponentAlignment(labelMembre, Alignment.BOTTOM_LEFT);
    commissionMembreLayout.addComponent(layoutMembreLabel);
    /* Boutons */
    HorizontalLayout buttonsLayoutMembre = new HorizontalLayout();
    buttonsLayoutMembre.setWidth(100, Unit.PERCENTAGE);
    buttonsLayoutMembre.setSpacing(true);
    commissionMembreLayout.addComponent(buttonsLayoutMembre);
    btnNewMembre.setCaption(applicationContext.getMessage("droitprofilind.btnNouveauMembre", null, UI.getCurrent().getLocale()));
    btnNewMembre.setEnabled(false);
    btnNewMembre.addClickListener(e -> {
        commissionController.addProfilToMembre((Commission) commissionTable.getValue());
    });
    buttonsLayoutMembre.addComponent(btnNewMembre);
    buttonsLayoutMembre.setComponentAlignment(btnNewMembre, Alignment.MIDDLE_LEFT);
    /* Edit profil */
    OneClickButton btnEditMembre = new OneClickButton(applicationContext.getMessage("btnEdit", null, UI.getCurrent().getLocale()), FontAwesome.PENCIL);
    btnEditMembre.setEnabled(false);
    btnEditMembre.addClickListener(e -> {
        if (commissionMembreTable.getValue() instanceof CommissionMembre) {
            commissionController.updateProfilToMembre((CommissionMembre) commissionMembreTable.getValue());
        }
    });
    buttonsLayoutMembre.addComponent(btnEditMembre);
    buttonsLayoutMembre.setComponentAlignment(btnEditMembre, Alignment.MIDDLE_CENTER);
    /* Delete profil */
    OneClickButton btnDeleteMembre = new OneClickButton(applicationContext.getMessage("btnDelete", null, UI.getCurrent().getLocale()), FontAwesome.TRASH_O);
    btnDeleteMembre.setEnabled(false);
    btnDeleteMembre.addClickListener(e -> {
        if (commissionMembreTable.getValue() instanceof CommissionMembre) {
            commissionController.deleteProfilToMembre((CommissionMembre) commissionMembreTable.getValue());
        }
    });
    buttonsLayoutMembre.addComponent(btnDeleteMembre);
    buttonsLayoutMembre.setComponentAlignment(btnDeleteMembre, Alignment.MIDDLE_RIGHT);
    /* Table des CommissionMembre */
    BeanItemContainer<CommissionMembre> containerMembre = new BeanItemContainer<>(CommissionMembre.class);
    containerMembre.addNestedContainerProperty(CommissionMembre_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.loginInd.getName());
    containerMembre.addNestedContainerProperty(CommissionMembre_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.libelleInd.getName());
    containerMembre.addNestedContainerProperty(CommissionMembre_.droitProfilInd.getName() + "." + DroitProfilInd_.droitProfil.getName() + "." + DroitProfil_.libProfil.getName());
    commissionMembreTable.setContainerDataSource(containerMembre);
    commissionMembreTable.addBooleanColumn(CommissionMembre_.temIsPresident.getName());
    commissionMembreTable.setVisibleColumns((Object[]) FIELDS_ORDER_MEMBRE);
    for (String fieldName : FIELDS_ORDER_MEMBRE) {
        commissionMembreTable.setColumnHeader(fieldName, applicationContext.getMessage("droit." + fieldName, null, UI.getCurrent().getLocale()));
    }
    commissionMembreTable.setSortContainerPropertyId(CommissionMembre_.droitProfilInd.getName() + "." + DroitProfilInd_.individu.getName() + "." + Individu_.loginInd.getName());
    commissionMembreTable.setColumnCollapsingAllowed(true);
    commissionMembreTable.setColumnReorderingAllowed(true);
    commissionMembreTable.setSelectable(true);
    commissionMembreTable.setImmediate(true);
    commissionMembreTable.addItemSetChangeListener(e -> commissionMembreTable.sanitizeSelection());
    commissionMembreTable.addValueChangeListener(e -> {
        /* Les boutons d'édition et de suppression de commission sont actifs seulement si une commission est sélectionnée. */
        boolean membreIsSelected = commissionMembreTable.getValue() instanceof CommissionMembre;
        btnDeleteMembre.setEnabled(membreIsSelected);
        btnEditMembre.setEnabled(membreIsSelected);
    });
    commissionMembreLayout.addComponent(commissionMembreTable);
    commissionMembreLayout.setExpandRatio(commissionMembreTable, 1);
    commissionMembreTable.setSizeFull();
    addComponent(commissionMembreLayout);
    setExpandRatio(commissionMembreLayout, 2);
    /* Gestion du readOnly */
    if (securityCtrCandFonc.isWrite()) {
        commissionTable.addItemClickListener(e -> {
            if (e.isDoubleClick()) {
                commissionTable.select(e.getItemId());
                btnEdit.click();
            }
        });
        commissionMembreTable.addItemClickListener(e -> {
            if (e.isDoubleClick()) {
                commissionMembreTable.select(e.getItemId());
                btnEditMembre.click();
            }
        });
        buttonsLayout.setVisible(true);
        buttonsLayoutMembre.setVisible(true);
    } else {
        buttonsLayout.setVisible(false);
        buttonsLayoutMembre.setVisible(false);
    }
    /* Inscrit la vue aux mises à jour de commission */
    commissionEntityPusher.registerEntityPushListener(this);
}
Also used : OnDemandStreamFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileUtils.OnDemandStreamFile) CommissionController(fr.univlorraine.ecandidat.controllers.CommissionController) OnDemandStreamFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileUtils.OnDemandStreamFile) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) VerticalLayout(com.vaadin.ui.VerticalLayout) Alignment(com.vaadin.ui.Alignment) UI(com.vaadin.ui.UI) Commission_(fr.univlorraine.ecandidat.entities.ecandidat.Commission_) OnDemandFileLayout(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileLayout) PieceJustif_(fr.univlorraine.ecandidat.entities.ecandidat.PieceJustif_) DroitProfilInd_(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd_) FontAwesome(com.vaadin.server.FontAwesome) Individu_(fr.univlorraine.ecandidat.entities.ecandidat.Individu_) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Label(com.vaadin.ui.Label) ViewChangeEvent(com.vaadin.navigator.ViewChangeListener.ViewChangeEvent) SpringView(com.vaadin.spring.annotation.SpringView) ValoTheme(com.vaadin.ui.themes.ValoTheme) OnDemandFileDownloader(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileDownloader) ColumnGenerator(com.vaadin.ui.Table.ColumnGenerator) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) SecurityCtrCandFonc(fr.univlorraine.ecandidat.services.security.SecurityCtrCandFonc) DroitProfil_(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfil_) EntityPushListener(fr.univlorraine.tools.vaadin.EntityPushListener) Resource(javax.annotation.Resource) StyleConstants(fr.univlorraine.ecandidat.StyleConstants) FileController(fr.univlorraine.ecandidat.controllers.FileController) ApplicationContext(org.springframework.context.ApplicationContext) BeanItemContainer(com.vaadin.data.util.BeanItemContainer) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) ImageViewerWindow(fr.univlorraine.ecandidat.views.windows.ImageViewerWindow) List(java.util.List) Button(com.vaadin.ui.Button) Table(com.vaadin.ui.Table) CommissionMembre_(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre_) HorizontalLayout(com.vaadin.ui.HorizontalLayout) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) PostConstruct(javax.annotation.PostConstruct) TableFormating(fr.univlorraine.ecandidat.vaadin.components.TableFormating) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) UserController(fr.univlorraine.ecandidat.controllers.UserController) EntityPusher(fr.univlorraine.tools.vaadin.EntityPusher) View(com.vaadin.navigator.View) OneClickButton(fr.univlorraine.ecandidat.vaadin.components.OneClickButton) DroitProfilController(fr.univlorraine.ecandidat.controllers.DroitProfilController) Table(com.vaadin.ui.Table) CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) OneClickButton(fr.univlorraine.ecandidat.vaadin.components.OneClickButton) OnDemandFileDownloader(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileDownloader) Label(com.vaadin.ui.Label) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) BeanItemContainer(com.vaadin.data.util.BeanItemContainer) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) HorizontalLayout(com.vaadin.ui.HorizontalLayout) ImageViewerWindow(fr.univlorraine.ecandidat.views.windows.ImageViewerWindow) ColumnGenerator(com.vaadin.ui.Table.ColumnGenerator) Button(com.vaadin.ui.Button) OneClickButton(fr.univlorraine.ecandidat.vaadin.components.OneClickButton) VerticalLayout(com.vaadin.ui.VerticalLayout) List(java.util.List) OnDemandFileLayout(fr.univlorraine.ecandidat.vaadin.components.OnDemandFileLayout) PostConstruct(javax.annotation.PostConstruct)

Example 3 with CommissionMembre

use of fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre in project esup-ecandidat by EsupPortail.

the class CommissionController method addProfilToMembre.

/**
 * Ajoute un profil à un membre
 * @param commission
 */
public void addProfilToMembre(final Commission commission) {
    /* Verrou */
    if (!lockController.getLockOrNotify(commission, null)) {
        return;
    }
    final DroitProfilMembreCommWindow window = new DroitProfilMembreCommWindow();
    window.addDroitProfilIndCommListener((individu, droit, isPresident) -> {
        /* Contrôle que le client courant possède toujours le lock */
        if (lockController.getLockOrNotify(commission, null)) {
            if (droitProfilController.getProfilIndByCommissionAndLogin(commission, individu).size() == 0) {
                final Individu ind = individuController.saveIndividu(individu);
                final DroitProfilInd dpi = droitProfilController.saveProfilInd(ind, droit);
                commission.getCommissionMembres().add(new CommissionMembre(commission, dpi, isPresident));
                commissionRepository.save(commission);
            } else {
                Notification.show(applicationContext.getMessage("droitprofilind.gest.allready", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
            }
        }
    });
    window.addCloseListener(e -> {
        /* Suppression du lock */
        lockController.releaseLock(commission);
    });
    UI.getCurrent().addWindow(window);
}
Also used : CommissionMembre(fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre) DroitProfilInd(fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd) Individu(fr.univlorraine.ecandidat.entities.ecandidat.Individu) DroitProfilMembreCommWindow(fr.univlorraine.ecandidat.views.windows.DroitProfilMembreCommWindow)

Aggregations

CommissionMembre (fr.univlorraine.ecandidat.entities.ecandidat.CommissionMembre)3 View (com.vaadin.navigator.View)2 UI (com.vaadin.ui.UI)2 Commission (fr.univlorraine.ecandidat.entities.ecandidat.Commission)2 DroitProfilInd (fr.univlorraine.ecandidat.entities.ecandidat.DroitProfilInd)2 SecurityCtrCandFonc (fr.univlorraine.ecandidat.services.security.SecurityCtrCandFonc)2 ConstanteUtils (fr.univlorraine.ecandidat.utils.ConstanteUtils)2 NomenclatureUtils (fr.univlorraine.ecandidat.utils.NomenclatureUtils)2 List (java.util.List)2 Resource (javax.annotation.Resource)2 ApplicationContext (org.springframework.context.ApplicationContext)2 BeanItemContainer (com.vaadin.data.util.BeanItemContainer)1 ViewChangeEvent (com.vaadin.navigator.ViewChangeListener.ViewChangeEvent)1 FontAwesome (com.vaadin.server.FontAwesome)1 Page (com.vaadin.server.Page)1 SpringView (com.vaadin.spring.annotation.SpringView)1 Alignment (com.vaadin.ui.Alignment)1 Button (com.vaadin.ui.Button)1 HorizontalLayout (com.vaadin.ui.HorizontalLayout)1 Label (com.vaadin.ui.Label)1