2010-12-05 40 views
1

我正在使用django-norel部署到應用引擎。哪一個可以成爲僅管理員區域的更好解決方案?使用app.yaml的定義僅管理領域 2)寫了谷歌userservice中間件 1)管理員只在django +應用引擎區域

更新: 有此項

- url: /.* 
    script: djangoappengine/main/main.py 
在ap.yaml

並不意味着所有的頁面將由main.py 處理,以防我正在使用login:admin這將如何影響當前的功能?

回答

1

因爲我使用appengine_admin第三方管理區。 要通過可變當前用戶是否是管理員模板我還發現了以下便利

self.response.out.write(template.render(path, {''admin':users.is_current_user_admin().. 

然後在模板管理部分向管理員顯示與標籤

{% if admin %} ... admin stuff 
2

使用app.yaml管理區域,因爲login: admin是一個簡單而乾淨的解決方案。

如果您想在公共頁面上使用主持人功能,您可以使用users.is_current_user_admin()

更新:您不能使用login: admin限制訪問某個文件中的某些功能。如果你想使用它,你必須創建一個單獨的admin.py文件或其他東西。

你也可以嘗試創建一個像@admin_required這樣的函數裝飾器。 Here's @login_required的示例。

下面是你必須改變部分:

user = users.get_current_user() 
if not user: 
    self.redirect(users.create_login_url(self.request.uri)) 
    return 
else: 
    handler_method(self, *args) 

if not users.is_current_user_admin(): 
    self.redirect(denied_url) 
    return 
else: 
    handler_method(self, *args) 
+0

會怎麼登錄:admin將沿打?請參閱更新。 – 2010-12-05 13:54:54