Ну, Pyramid реализует политику авторизации ACL, которая отображает принципалы в разрешения.
- Принципы настраиваются вами для обозначения того, что вам нравится, и являются производными от самого запроса (пользователя).
- Разрешение - это строка, прикрепленная к отдельному представлению или «операции»..
Возможно, я ошибаюсь, но RBAC, кажется, вполне вписывается в эту идею.Я понимаю, что RBAC имеет тенденцию быть в большей степени глобальной политикой, тогда как списки ACL, как правило, являются контекстными и, следовательно, привязаны к данным.Это на самом деле не проблема и зависит от того, как вы планируете структурировать остальную часть вашего приложения.
Вы также можете довольно просто реализовать свой собственный RBACAuthorizationPolicy
.В Pyramid будут передаваться принципалы и разрешение, и оттуда вы можете запросить сопоставления доступа, чтобы определить, возвращать ли значение Allowed
или Denied
для этого пользователя.