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

Plugins PHP Discussion :

Symfony, sfDoctrineGuardPlugin, créer un espace membre


Sujet :

Plugins PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut Symfony, sfDoctrineGuardPlugin, créer un espace membre
    Après lecture de plusieurs tutos dont le projet Jobeet, j’ai voulu développer un site Symfony avec espace membre disposant de droits et de groupes. Par exemple groupe membres, modérateurs, administrateurs. Pour les droits, un groupe peut se voir attribuer l’autorisation de soumettre les news, un autre celle de les valider et un autre celle de les modifier.
    Traditionnellement, je définis mes droits avec les opérateurs de bits. Mais ayant abordé Symfony, on a parlé d’un plugin SfDoctrineGuardPlugin. J’ai lu toute la documentation, mais je n’arrive pas à prendre en main la création de groupes et des permissions. Ce plugin semble porter plutôt sur le backend, alors que mon espace membre n’est pas forcément dans le backend. Sinon je ne pourrais pas ouvrir un forum par exemple. Je n’arrive pas non plus à intégrer le système des credentials qui va avec.
    Quelqu’un a-t-il déjà créé un système de permission avec Symfony ou utilisé sfDoctrineGuardPlugin pour son espace membre ? Si oui, veuillez m’orienter un peu. Surtout pas Google svp. Je l’ai déjà trop interrogé. Merci de votre aide.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 78
    Par défaut
    salut,

    j'ai utilisé le plugin SF DoctrineGuard pour une application. Je suis d'ailleurs en finition de dev.
    TOut d'avord ce plugin peut-être appliqué au backend et au frontend (et même aux autres applications que pourrai contenir ton projet).
    Le fichier security.yml te permettra de sécuriser l'une ou l'autre application.
    POur la gestion des groupes/user/credential, j'ai utilisé le generateur de backend.

  3. #3
    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
    Je pense que ton problème vient d'un mélange (courant) entre utilisateurs, groupes et droits.

    Dans sfGuard, on va créer des utilisateurs (simple) (ex : mimi, nawbacan, tuti, bisounours,...). Ces utilisateurs peuvent être membres de groupes (cela reste compréhensible)(ex : utilisateurs, admins, visualisateurs, modérateurs,...).

    A côté de cela, on va définir des droits (là, on sort du cadre simple... quoique) (ex : créer un message, éditer son message, éditer tous les messages, supprimer un utilisateur, modifier tous les messages, visualiser un message,...)

    Dans le code, tu vérifies (->hasCredential() ) si une personne a un droit (sans t'occuper des groupes et ou utilisateurs).

    Dans l'administration, tu vas attribuer les droits aux groupes (ex pour utilisateurs tu mets : créer un messages, éditer son message, visualiser un message). Dans des cas particulier, tu peux rajouter un droit directement à un utilisateur, sans passer par un groupe. Si l'utilisateur a le droit (directement ou par un groupe) ->hasCredential() répond "true".

    Une particularité, un utilisateur "Super Admin", retourne toujours true à ->hasCredential(), ce qui peut poser des problèmes en cas de groupes qui interdisent une action (ex : n'a pas le droit de modifier). Dans ce cas, on va tester si la personne n'en fait pas partie (!$user->hasCredential() ) et ... perdu, le "Super Admin" est viandé.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Avril 2002
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2002
    Messages : 78
    Par défaut
    Citation Envoyé par mimi68 Voir le message
    Une particularité, un utilisateur "Super Admin", retourne toujours true à ->hasCredential(), ce qui peut poser des problèmes en cas de groupes qui interdisent une action (ex : n'a pas le droit de modifier). Dans ce cas, on va tester si la personne n'en fait pas partie (!$user->hasCredential() ) et ... perdu, le "Super Admin" est viandé.
    j'ai pris une autre optique là dessus. j'ai crér un role d'animateur, qui a accès au backend. de cette manière l'animateur ne peut pas faire ce qu'il veut en frontend. le role de super admin n'est utilisé que par le support technique (en l'occurence moi ou un collègue développeur). une façon de voir les choses.

  5. #5
    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
    C'est toi le maître de ton développement, la méthode que tu utiliseras sera certainement bonne, et à ce niveau, c'était plus pour avertir d'un danger (qui reste potentiel pour toi est l'autre "surper administrateur" que pour dire qu'il fallait que chaque utilisateur le soit...


    Reste que je ne vois toujours pas l'intérêt d'avoir une base par utilisateur sur ton blog...

    De plus, pense a regarder du côté du plugin sfDoctrineActAsTaggablePlugin qui pourrait être intéressant pour les articles et les commentaires ainsi qu'au plugin sfForkedDoctrineApplyPlugin pour la gestion des utilisateurs (partie étandue, création, vérification des email, perte de mots de passe...)

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 260
    Par défaut
    Merci pour vos différentes réponses. Bien que je sois encore dans les nuages, je vais essayer de faire comme mimi68 a dit. Je vous tiens au courant.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut
    Citation Envoyé par Michel Rotta Voir le message
    sfForkedDoctrineApplyPlugin pour la gestion des utilisateurs (partie étandue, création, vérification des email, perte de mots de passe...)

    Le plugin sfForkedDoctrineApplyPlugin semble plutôt orienté frontend non ?

Discussions similaires

  1. Réponses: 197
    Dernier message: 27/04/2021, 00h11
  2. comment créer espace membres sur mon site?
    Par elabadiabdelmoula dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2013, 12h07
  3. [1.x] Lier sfDoctrineGuardPlugin à mon espace membre
    Par etoileweb dans le forum Débuter
    Réponses: 35
    Dernier message: 23/11/2010, 11h39
  4. [Sécurité] Créer un espace membre
    Par Stouille89 dans le forum Langage
    Réponses: 3
    Dernier message: 12/03/2007, 23h49
  5. créer un espace personnel pour chaque membre
    Par loady dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2006, 12h54

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