Bonjour,
Voila je rencontre un petit problème avec les roles dans symfony (je débute dans l'apprentissage de celui ci).
J'essaye d'organiser des Roles (il m'en faudrais genre 5 ou 6)
j'ai donc ajouter dans security.yml différent roles comme les exemples données.
Par contre j'ai remarqué que le ROLE_USER ne part pas en demote.
est ce que c'est normal ?
cordialement.
Je dirais plutôt que ton ROLE_USER n'a pas de rôle inférieur. Il est simplement inférieur à ROLE_ADMIN. Tu devrais écrire ça :
ROLE_USER: ROLE_NORMAL
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
Si tu essaies comme ça, le problème est toujours le meme ? Je ne suis pas sur que FOS permettent un retour à un attribut roles vide.
Tu regardes la présence du ROLE_USER directement dans la bdd ou via l'objet user ?
Bonjour,
Si le ROLE_USER est le rôle le plus bas, il semble logique de ne pas pouvoir descendre plus dans la hiérarchie.
Comment on défini tous ça ?
Pour essayer j'ai fait comme ceci :
ROLE_NORMAL: ROLE_NORMAL
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
J'ai voulu resteindre quelques accès à des pages au ROLE_USER mais sur mon compte de test le ROLE_USER ne part pas, par contre je peux ajouter et enlever ROLE_NORMAL.
Il faut qu'il y est une cohérence dans la hiérarchie par exemple :
ROLE_MEMBRE: ROLE_USER
ROLE_PREMIUM: ROLE_MEMBRE
ROLE_ADMIN:ROLE_ROLE_PREMIUM
Si on écrit ça d'une autre façon pour faire apparaître la hiérarchie on aurait :
ROLE_USER < ROLE_MEMBRE < ROLE_PREMIUM < ROLE_ADMIN
En espérant répondre à ta question
A voir ton exemple je pense que j'avais bien compris déjà le principe. Du coup pourquoi mon role ROLE_USER n'est pas demote ?
Car si j'ai bien compris :
ROLE_NORMAL: ROLE_NORMAL
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
donne :
ROLE_NORMAL< ROLE_USER< ROLE_ADMIN
Donc si je fais un
doctrine:user:demote user_name ROLE_USER
il devrais partir non ? hors là il me dis que ca a fonctionné mais le role reste quand même dans le tableau des roles de l'utilisateur.
Aaaah mais attend ! ça veut dire que synthaxiquement
ROLE_SUPER_ADMIN : ROLE_ADMIN
ne signifie pas que mon ROLE_SUPER_ADMIN est définie avec la valeur ROLE_ADMIN
il s'agit de dire que ROLE_ADMIN < ROLE_SUPER_ADMIN
C'est ça ?
C'est plutôt comme ça que tu peux l'interprêter. Vois plutôt ça comme un système d'héritage, d'arbre.
D'accord je comprend mieux alors. Je pensais qu'il s'agissais d'affecter juste des valeurs pour des rôles. Je vais essayer tout ça !