-
Utilisation de Zend_Acl
Bonjour, voila depuis peut de temps je me suis mis à l'utilisation de Zend Framework pour le développement d'une application de gestion de présentéisme ! Etant débutant dans l'utilisation de ce Framework, je me pose quelques questions ...
Dans mon application donc il se trouve que j'ai plusieurs users qui seront amené à l'utiliser (Agent, Chef de Secteur, Responsable, Gestionnaire, Administrateur) !
J'ai fait une MLDR comme ce ci :
Grade (id_grade, libelle_grade)
Secteur (id_secteur, libelle_secteur)
User (num_matricule, nom_user, prenom_user, sexe, login_user, pwd_user, solde_conge, nbre_conge_valide, is_agent, is_chef, is_respons, is_admin, is_gest, #id_grade, #id_secteur)
Type_Conge (id_type_conge, libelle_type_conge)
Avis_Conge (id_avis_conge, date_avis_conge, date_debut_conge, date_fin_conge, nbre_jour_conge, solde_apres_conge, motif_conge, etat_avis_conge, #num_matricule, #id_type_conge)
Avis_HeureSupp (id_avis_hs, date_avis_hs, date_souhait_recup, etat_avis_hs, #num_matricule)
Ligne_HeureSupp (num_ligne, date_heure_supp, heure_debut, heure_fin, nbre_heuresupp, tache, projet, #id_avis_hs)
Avis_Recup (id_avis_recup, date_avis_recup, date_demande_recup, date_hs_effectue nbre_heure_recup, motif_recup, etat_avis_recup, #num_matricule)
Ma question est à savoir qu'un utilisateur peut avoir plusieurs rôle (en effet un user peut etre à la fois gestionnaire et agent ou par exemple administrateur et agent), dans la plus part des tutoriels que j'ai pu lire qu'un utilisateur à un rôle !! n'orais je pas trop de soucis dans l'utilisation de Zend Acl dans mon cas ? et comment puis je commencer correctement ? :oops:
-
Bonne question !
Est-ce que la conception doit s'adapter à l'outils ou l'outils à la conception ? :)
Trêve de plaisanterie, Zend_Acl te propose de tester le lien entre un rôle unique et une ressource unique. Maintenant, je ne sais pas quel tutorial tu as suivi. Je te propose le mien pour référence.
Si tu regardes dans le plugin My_Controller_Plugin_Auth, tu constates qu'il y a une méthode isAllowed qui test le lien rôle/ressource/action. Rien ne t'empêche ici de boucler sur plusieurs rôle et de t'arrêter dès que tu as l'autorisation de passer. Ou mieux, de surcharger Zend_Acl avec ta classe My_Acl ou My_Acl_Ini (comme proposé) et redéfinir la méthode isAllowed comme acceptant un tableau de rôles.
Il faudra également que tu stockes dans $user['roles'] (ligne 9) un tableau de rôles et non pas un rôle unique.
Il y a peut être encore d'autres moyens de le faire... :)
-
Hmmm :? tout cela à l'air d'être un peu confus pour moi !! mais je vais essayer de me pencher dessus ! Merci Dvyne !