Dans ce cas t'aura du fil à retordre
Je n'utilise plus le groupware utilisateur de windev depuis des décennies, par contre j'ai monté mon propre système Profils-Rôles-Habilitations que j'utilise dans des projets assez volumineux et complexes (pas forcement ce que tu dois faire mais il faut s'attendre,si tu compte mettre un en place, à des évaluations au fur et à mesure)
Après qlqs années d'amplification, d'amélioration continues.. et beaucoup de nuits blanches je ne peux pas dire que je suis totalement satisfait, mais je peux me permettre d'avoir un certain confort de programmation en utilisant ce système dans le pratique.
Pour te donner une idée de l’ampleur de taf de la mise en marche de son propre système de Profils-Rôles-Habilitations, de la complexité de mise en œuvre, mais aussi de l'aisance et la simplicité de l'usage une fois le systeme est en marche.
Voici, en grosso modo, ce que j’utilise:
La gestion des profils:
La fiche Profil Administrateur ACS :
Une Fiche d'un utilisateur affecté à ce profil:
A la sortie de cette fiche une chaine contenant tous les rôles est générée /mise à jour.
Dans notre exemple voici à quoi cette chaine des roles ressemble :
Par contre la même chaine d'un profil Vision détaillée par exemple sera de la sorte :Code (Text):ROLE_documentsPreRemplis,ROLE_nouvelleDsp,ROLE_formulaireAmontDsp,ROLE_validationAvisRectificatif,ROLE_validationAvisRectificatifOffre,ROLE_validationAvisRectificatifOffreFinale,ROLE_consolidationDCEpt,ROLE_consolidationDCEOffrept,ROLE_consolidationDCEOffreFinalept,ROLE_definirOrdreDuJourCIM,ROLE_baseConnaissance,ROLE_instanceCAO,ROLE_REDACTION,ROLE_direction_service,ROLE_recommandationAttributairesPressentisPA,ROLE_recommandationAttributairesPressentis,ROLE_recommandationProjetsPressentis,ROLE_recommandationAttributairesPressentisPADsp,ROLE_recommandationAttributairesPressentisDsp,ROLE_recommandationAttributairesPressentisEnveloppeUnique,ROLE_calendrierInitial,ROLE_envoiDemat,ROLE_envoiDematOffre,ROLE_envoiDematOffreFinale,ROLE_suiviEchange,ROLE_envoiLettreConsultation,ROLE_envoiDCEOperateur,ROLE_suiviEchangeDemat,ROLE_suiviEchangeDematOffre,ROLE_suiviEchangeDsp,ROLE_suiviEchangeDematOffreFinale,ROLE_attributionMarcheAvenant,ROLE_definirOrdreDuJourCAO,ROLE_declarerSansSuite,ROLE_envoyerDossierCAO,ROLE_declarerClos,ROLE_dupliquerConsultation,ROLE_creerContactEntreprise,ROLE_accordCadre,ROLE_REDACTION,ROLE_clause,ROLE_choixSupportRectificatif,ROLE_choixSupportRectificatifOffre,ROLE_choixSupportRectificatifOffreFinale,ROLE_referentielSupportExterne,ROLE_biCles,ROLE_lancementConsultation,ROLE_faireSuite,ROLE_compteBOAMP,ROLE_gestionAction,ROLE_attributionMarche,ROLE_transmissionMarcheControleLegalite,ROLE_attributionMarcheDsp,ROLE_ouvertureCandidature,ROLE_ouvertureCandidatureEnveloppeUnique,ROLE_nouvelleConsultation,ROLE_caracteristiquesConsultation,ROLE_annonceAccueil,ROLE_declarerClosDSP,ROLE_preparationAvisAttribution,ROLE_REDACTION,ROLE_integralement_article,ROLE_validationPiecesDCE,ROLE_validationPiecesDCEOffre,ROLE_validationPiecesDCEOffreFinale,ROLE_registreDepot,ROLE_registreDepotOffre,ROLE_registreDepotOffreFinale,ROLE_recommandationCandidaturesAdmissiblesPA,ROLE_recommandationDspPA1,ROLE_recommandationDspPA2,ROLE_visionDetaillee,ROLE_REDACTION,ROLE_document,ROLE_invaliderDCE,ROLE_REDACTION,ROLE_canevas,ROLE_validerCalendrierInitial,ROLE_registreRetrait,ROLE_registreRetraitOffre,ROLE_registreRetraitOffreFinale,ROLE_fichePratique,ROLE_choixSupportAttribution,ROLE_dupliquerDSP,ROLE_ecritureConsultation,ROLE_nouvelAvenant,ROLE_creerAvenant,ROLE_validationAAPC,ROLE_questionReponse,ROLE_questionReponseOffre,ROLE_questionReponseOffreFinale,ROLE_consolidationDCEpa,ROLE_consolidationDCEOffrepa,ROLE_consolidationDCEOffreFinalepa,ROLE_creerEntreprise,ROLE_instanceCIM,ROLE_nouvelAvenant,ROLE_creerAvenant,ROLE_gestionAvenants,ROLE_candidatureEcarte,ROLE_candidatureEcartePA,ROLE_leveeAnonymat,ROLE_dissocierLot,ROLE_quorumCAO,ROLE_avisAttribution,ROLE_avisAttributionAvenant,ROLE_notificationAvenant,ROLE_visionDetailleeBeneficiaire,ROLE_complementAction,ROLE_choixSupportPublicite,ROLE_preinscriptionRecommandationCandidaturesAdmissiblesPA,ROLE_preinscriptionRecommandationAttributairesPressentisEnveloppeUnique,ROLE_preinscriptionSuiviEchange,ROLE_preinscriptionRecommandationDspPA1,ROLE_preinscriptionRecommandationAttributairesPressentisPA,ROLE_preinscriptionRecommandationAttributairesPressentis,ROLE_preinscriptionCandidature,ROLE_preinscriptionOffre, ROLE_preinscriptionOffreFinale,ROLE_attribution,ROLE_preinscriptionAvisCommission,ROLE_preparationAvisRectificatif,ROLE_preparationAvisRectificatifOffre,ROLE_preparationAvisRectificatifOffreFinale,ROLE_suiviDeliberationAmont,ROLE_suiviDeliberationAval,ROLE_suiviDeliberationAvalAvenant,ROLE_reunionCAO,ROLE_commissionDeliberations,ROLE_calendrierReel,ROLE_ajustementDCE,ROLE_ajustementDCEOffre,ROLE_ajustementDCEOffreFinale,ROLE_quorumCIM,ROLE_recommandationCandidature,ROLE_recommandationDspSAPIN,ROLE_ouvertureCandidature,ROLE_ouvertureCandidatureEnveloppeUnique,ROLE_statistiques,ROLE_gestionCourrier,ROLE_redactionLettreConsultation,ROLE_utilisateur,ROLE_preInscrireConsultationCIM,ROLE_afficherToutesConsultations,ROLE_confirmationAttribution,ROLE_avisCommission,ROLE_lancementRectification,ROLE_lancementRectificationOffre,ROLE_lancementRectificationOffreFinale,ROLE_infoBulle,ROLE_declarerInfructueux,ROLE_validationAvisAttribution,ROLE_reunionCIM,ROLE_sirenRaisonSocial,ROLE_registreDepotConcours,ROLE_ouvertureOffre,ROLE_ouvertureReponse,ROLE_ouvertureProjetPA,ROLE_ouvertureOffreFinale,ROLE_ouvertureOffreFinanciere,ROLE_ouvertureOffreSimple,ROLE_ouvertureOffreEnveloppeUnique,ROLE_envoyerDossierCIM,ROLE_preparationAAPC,ROLE_profil,ROLE_suiviEnvoiPublicite,ROLE_attributionSousReserve,ROLE_attributionSousReservePA,ROLE_attributionSousReserveEnveloppeUnique,ROLE_organigrammeDirection,ROLE_envoiDossier,ROLE_gestionDocumentModele,ROLE_accesAuxRapportsMisADispositionPourTousMembres
Code (Text):ROLE_visionDetaillee,ROLE_calendrierReel,ROLE_visionDetailleeBeneficiaire,ROLE_historiqueAjustementDce
Voici comment je test si un profile, selon ses propres roles, a les habilitations par exemple de voir un tel bouton, menu,... ou pas:
Code (Windev):ZR_Recensement[ZR_Recensement].BTN_Validation5..Visible =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(gsRole,"ROLE_administrerLesProcedures",MotComplet)
ZR_Recensement[ZR_Recensement].BTN_Refuser5..Visible =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(gsRole,"ROLE_administrerLesProcedures",MotComplet)
ZR_Recensement[ZR_Recensement].BTN_ModifierComm..Visible =Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
(gsRole,"ROLE_administrerLesProcedures",MotComplet)
Ce système n'est pas parfait mais je le maitrise bien et il me fait gagner énormément du temps.
Certes on peut faire autrement, mais l'essentiel c'est qu'on soit alaise avec la méthode qu'on choisi.
Bon dev.
Cliquez pour agrandir...