Механизм авторизации на основе ролей для приложения GAE - PullRequest
9 голосов
/ 13 марта 2012

Я ищу основанный на ролях фреймворк / модуль / пакет для приложения, написанного на 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.

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Web2py содержит контроль доступа на основе ролей, который, я считаю, работает на GAE.Это задокументировано здесь:

http://web2py.com/books/default/chapter/29/9

Возможно, вы сможете раскошелиться на модуль аутентификации и изменить его для своих целей.Я знаю, что люди делали это с другими частями web2py, такими как DAL.

1 голос
/ 03 августа 2012

Платформы Turbogears и Web2py имеют контроль доступа на основе ролей, один из которых можно интегрировать в версию GAE Python.

...