Appengine ACL с аутентификацией Google - PullRequest
3 голосов
/ 05 июня 2011

Я хотел бы реализовать ACL с Google Authentication.Нужен указатель относительно возможности того же самого.

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

  • Страница X доступна только для myadmin@gmail.com

  • Страница Y, доступная для всех, принадлежит группе Y. После регистрации модератор добавит / отклонит пользователя в группу Y.

  • Страницы недоступны, если пользователь не принадлежитна любой из вышеперечисленных.Несанкционированный просмотр запрещен даже при успешной аутентификации пользователя.

Я планирую использовать Django для своего проекта, любая поддержка, предоставляемая Django, будет полезной.заранее.

Ответы [ 2 ]

5 голосов
/ 06 июня 2011

Вам нужно будет сделать это самостоятельно: внедрите ACL с моделью хранилища данных, введенной пользователем user_id, и извлекайте и проверяйте ее при каждом запросе. Пользовательский API не предоставляет ничего подобного этому встроенному.

0 голосов
/ 05 июня 2011

Вот ответ только для административной части и возможные предложения о том, как сделать другую часть вашего вопроса:

Для доступа только администратора, я вставил следующие строки в app.yaml:

handlers:
- url: /admin/.*
  script: main.py
  login: admin

- url: /super-restricted-area/.*
  script: main.py
  login: admin

Вышеуказанные ограничения будут ограничивать базовые URL-адреса admin и super-restricted-area только для администратора сайта.Вы можете иметь несколько адресов, ограниченных для администратора.Пролистав Конфигурация приложения Python doc, я не смог найти никаких ограничений группирования на уровне конфигурации.

В дальнейшем я буду считать, что вам очень удобно работать с Django, используя связующее ПО ина виду декораторы, в противном случае могут потребоваться страницы для подробного объяснения этих двух тем.Предполагая, что групповые ограничения не могут быть выполнены на уровне конфигурации, вы можете попробовать поместить код авторизации в промежуточное ПО django (если механизм приложения поддерживает его, django в механизме приложения ограничен) или в декоратор для ваших представлений.

В вашем промежуточном программном обеспечении или в декораторе вот что для начала:

from google.appengine.api import users

user = users.get_current_user()

if user:
    # Get the group of the user and perform your authorisation

Вот справочник по выше .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...