Та же роль с разными действиями для разных пользователей - PullRequest
0 голосов
/ 10 апреля 2019

Я использую symfony3, и у меня много ролей в приложении, и я хочу, чтобы администратор приписывал многие действия (книги по управлению, проекты по управлению ...) разным пользователям, даже если у них уже есть одна и та же роль, например две учащиеся могут иметь различное управление (действия), однако они уже имеют ту же роль "ROLE_STUDENT". зная, что я использовал FOSUserBundle для управления пользователями. я нашел много решений в интернете, например, используя ACL, группы, разрешения, используйте эти действия в качестве ролей .. Так, как я могу приписать действия различным пользователям с той же ролью и какое лучшее решение?

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете использовать комбинацию роли, иерархии ролей и избирателя

/** security.yaml **/
    role_hierarchy:
            ROLE_ADMIN
            ROLE_STUDENT_BOOK:       ROLE_STUDENT
            ROLE_STUDENT_PROJECT:     ROLE_STUDENT       
            ROLE_STUDENT_LIBRARY: [ROLE_STUDENT_BOOK, ROLE_STUDENT_PROJECT]

Здесь ваш пользователь может иметь роль ROLE_STUDENT_BOOK и управлять книгой, где другой студент управляет проектами, а третий управляет обоими ... но, в конце концов, они все еще являются студентами со всеми разрешениями ROLE_STUDENT. И, конечно, никто из у них есть права администратора

Тогда вы можете использовать избирателя для более точного контроля над тем, кто может что-то делать с вашим объектом

https://symfony.com/doc/current/security/voters.html

...