IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

sfDoctrineGuard : exemple d'utilisation


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut sfDoctrineGuard : exemple d'utilisation
    Bonjour a tous,

    Je cherche a mettre en place dans ma petite appli une gestion des droits d'accès. A ce titre je me suis dit autant utiliser sfDoctrineGuard.

    Ma gestion des droits doit me permettre de :
    • ajout suppression d'utilisateurs
    • ajout suppression de groupes d'utilisateurs
    • affectation de droits aux groupes/utilisateurs


    Les droits groupes et utilisateurs sont cumulatifs c'est a dire qu'un user peut avoir les droits d'un groupe , plus un droit qui lui est specifique...

    Je pense que nombre de personnes ici ont déjà mis en place quelque chose de similaire.

    Par contre quelqu'un aurait il un tuto sur la mise en place et l'utilisation de ce plugin ?

    J'ai bien trouvé de nombreux blogs traitant de la question , mais je trouve la plupart de ces articles un peu trop superficiels pour ma petite tête de noob...

  2. #2
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    C'est exactement ce que fais le plugin sfGuard.

    La gestion des users, de profils (groups) et de droits (permissions).

    Tu peux affecter des permissions aux groups et/ou bien directement aux users.

    Le plus simple est d'aller voir la doc officielle : http://www.symfony-project.org/plugi...ineGuardPlugin (particulièrement le fichier readme).

    Ou ici : http://www.symfony-project.org/blog/...ineguardplugin

    Il faut que tu testes, et si ensuite tu as des problèmes particuliers n'hésites pas à les expliciter clairement...

    Bon courage...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Mhhh, je me note ça de côté, ça peut faire un sujet de tuto sympa.

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    Merci je vais tenter de creuser un peu la doc officielle...


    Citation Envoyé par Tirkyth Voir le message
    Mhhh, je me note ça de côté, ça peut faire un sujet de tuto sympa.
    Je pense effectivement qu'un joli tuto la dessus sortirait plus d'un débutant de la panade...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 66
    Par défaut
    Un tuto comme celui ci ?

    http://www.symfony-project.org/jobee...Doctrine/fr/13

    Il y a une partie plugin qui explique comment utiliser sfGuardDoctrinePlugin, j'imagine qu'il y a le meme pour Propel au cas certaines l'utiliseraient encore.

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est vrai que la page de la doc Jobeet sur ce sujet contient déjà beaucoup de choses.

  7. #7
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    Grâce a vos réponses , j'ai bien avancé dans la mise en place de ma politique de droits d'accès.

    Par contre , je voudrais grouper mes permissions dans des catégories de permissions. Est il possible de créer une table et de l'intégrer dans sfGuard ?

    Et enfin une dernière question, que j'imagine idiote , mais je la pose quand même

    Une fois que mon user se connecte, comment puis je tester si celui ci est autorisé ou pas a effectuer cette action ? j'ai bien vu la méthode hasCredential() mais ca ne me parait pas super clair et je ne vois pas comment la mettre en place dans mon appli. Quelqu'un aurait il un exemple ?

  8. #8
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Est il possible de créer une table et de l'intégrer dans sfGuard ?
    Non, cela revient à créer un nouveau plugin...

    Par contre , je voudrais grouper mes permissions dans des catégories de permissions.
    Cela ne s'appellerait pas des groupes ?


    Mettre en place le hasCredential.

    Tu as trois possibilités :
    • une au niveau des fichiers de configuration security.yml
    • au niveau du module dans la méthode preExecute() $this->getUser()->hasCredential('titi'). Ce qui permettra de réserver ou interdire pour tous le module.
    • au niveau de l'action, même méthode que ci-dessus mais pour une action.

  9. #9
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    Citation:
    Par contre , je voudrais grouper mes permissions dans des catégories de permissions.
    Cela ne s'appellerait pas des groupes ?
    Non , pour ma part les groupes sont des groupes d'utilisateurs auxquels on affecte des droits.

    Je parle de catégories de droits, simplement pour pouvoir les regrouper par themes au niveau visuel.

    Exemple :
    • Droits généraux
    • Droits pour Module 1
    • Droits pour module 2



    Au niveau du module dans la méthode preExecute() $this->getUser()->hasCredential('titi'). Ce qui permettra de réserver ou interdire pour tous le module.
    Pour précision : dans ton exemple , titi est il correspondant au contenu de la colonne "name" de la table "sf_guard_permission" ?

    Par contre , je voudrais grouper mes permissions dans des catégories de permissions. Est il possible de créer une table et de l'intégrer dans sfGuard ?
    Quand je parle de créer une table et de l'intégrer dans sFGuard , cela signifiait :

    Créer une table "sf_guard_permission_category" qui contiendrait la liste de mes catégories , et ajouter dans la table "sf_guard_permission" une colonne qui contiendrait l'id de "sf_guard_permission_category"

    Ceci est il impossible ?

  10. #10
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    On se dirige vers une usine atomique Ukrainienne !


    Bon, reprenons.

    Nous avons des utilisateurs. Nous avons des groupes. Nous avons des "droits".

    Les droits peuvent être attribué indifféremment aux utilisateurs et/ou aux groupes.

    La méthode hasCredential() test si notre utilisateur possède un "droits" soit directement, soit indirectement.

    Rien ne t'empêche de faire des droits dans ce type :
    • ComptabilitéTout
    • ComtabilitéSaisie
    • ComptabilitéModif
    • ComptabilitéSupression


    pour l'action Saisie, tu fait alors un test du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->foward404if(!($this->getUser()->hasCredential('ComptabilitéTout') && $this->getUser()->hasCredential('ComptabilitéSaisie') ), 'Vous n\'avez pas d\'autorisation en saisie sur le module comptabilité')
    Ce qui devrait résoudre ton problème sans modifier le module...

  11. #11
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    OK donc tu me conseilles de "normaliser" le nom de mes droits , pour les hierarchiser. Effectivement ca pourrait me convenir.

    Il faudra juste que je bidouille un peu pour pouvoir generer mon affichage comme je veux

    En tous cas merci

    PS : J'avais compris l'explication de l'affectation des droits indifférement aux utilisateurs et au groupes dès le départ

  12. #12
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Réponse au PS, c'est un des problèmes qui revient le plus souvent sur le plugin ou les utilisateurs (des développeurs ici) confondent les groupes et les droits. D'où le fait que je le marque à chaque fois.

Discussions similaires

  1. Besoin d'exemple d'utilisation d'un MouseListener
    Par hbzied dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/04/2006, 11h27
  2. [XML]Exemples d'utilisation
    Par le Daoud dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/01/2006, 18h04
  3. Exemple d'utilisation de SOAP avec C++
    Par jlassira dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 04/01/2006, 08h42
  4. Exemple d'utilisation de XMLDocument
    Par Mickey.jet dans le forum Langage
    Réponses: 4
    Dernier message: 20/06/2005, 19h51
  5. Recherche des exemple d'utilisation
    Par lemme dans le forum Merise
    Réponses: 2
    Dernier message: 26/02/2003, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo