Вот ответ только для административной части и возможные предложения о том, как сделать другую часть вашего вопроса:
Для доступа только администратора, я вставил следующие строки в 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
Вот справочник по выше .