Ролевой механизм авторизации для приложения GAE

Я ищу основанный на ролях фреймворк/модуль/пакет для приложения, написанного на Python (2.7), работающего в Google App Движок.

Под ролевыми я подразумеваю механизм, который позволил бы мне проверить (в основном во время обработки запроса), может ли определенный пользователь выполнить определенное действие.

Пара вариантов использования:

  • пользователь A должен иметь возможность видеть и изменять свой профиль, тогда как пользователь B должен иметь возможность видеть только профиль пользователя A.
  • пользователь с ролью «admin» должен иметь возможность видеть всех зарегистрированных пользователей, тогда как пользователь 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, предпочтительно реализованное с помощью НДБ.

9
задан alex 13 March 2012 в 19:16
поделиться