2010-11-13 3 views
1

Я пишу веб-приложение с Google App Engine на Python, которое позволяет пользователям читать книги. Я бы хотел, чтобы только администраторы добавляли на сайт информацию о книгах и содержании страниц книги.Google App Engine - административный раздел

При ограничении доступа к определенным страницам с конфигурацией app.yaml, например ниже, необходимо, чтобы скрипт, связанный с страницами администратора, отличался от сценария, используемого для страниц, доступных для всех. Например, есть ли проблема, если скрипт, связанный с /admin/.* urls, будет home.py вместо admin.py?

application: myapp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url:/
    script: home.py 

- url: /index\.html 
    script: home.py 

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

- url: /.* 
    script: not_found.py 

Спасибо,

David

+0

Что случилось, когда вы пробовали это? – SingleNegationElimination

+0

Этот код был из источника, написанного Google. Мне интересно, нужно ли мне это реализовать. Спасибо, Дэвид – David

ответ

5

Вы также можете использовать is_current_user_admin внутри вашего запроса кода обработки для проверки программно.

2

У вас есть два варианта: один из них - это то, что у вас уже есть, - чтобы все страницы администратора находились под /admin и применяли защитную защиту по этому пути, что и сделал Адам.

Другой должен хранить одни и те же страницы для всех (скажем, вы хотите показать специальные функции для администраторов, например, кнопки редактирования или инструменты модерации) и, как сказал Адам, и использовать функцию is_current_user_admin(), чтобы определить, что показывать и сделать для админов.