Я ищу основанный на ролях фреймворк / модуль / пакет для приложения, написанного на Python (2.7), работающего на Google App Engine.
Под ролевым я имею в виду механизм, который позволил бы мнечтобы проверить (во время обработки запроса большую часть времени), может ли определенный пользователь выполнить определенное действие.
Пара вариантов использования:
- пользователь A должен иметь возможностьвидеть и изменять свой профиль, тогда как пользователь B должен видеть только профиль пользователя A.
- пользователь с ролью «администратор» должен иметь возможность видеть всех зарегистрированных пользователей, тогда как пользователь A и пользователь B должны видеть только пользователей с общедоступным профилем (например, пользователи со свойством user.public, для которого установлено значение True)
- и т. Д.
Я представляю себе что-то вроде
user_a.is_able_to('read', user_b) # -> True of False
или
user_a.authorize('update', user_b) # raises an exception if 'not allowed to'
Пока я видел только acl.py от tipfy.Выглядит довольно просто и довольно близко к тому, что я ищу.Мне интересно, есть ли что-то похожее на этот acl.py, предпочтительно реализованное с использованием NDB.