2009-07-31 35 views

回答

5

您可以定義裝飾器以使其更容易。例如:

def requiresUser(fun): 
    def decorate(*args, **kwargs): 
    if not users.get_current_user(): 
     self.error(403) 
    else: 
     fun(*args, **kwargs) 
    return decorate 

def requiresAdmin(fun): 
    def decorate(*args, **kwargs): 
    if not users.is_current_user_admin(): 
     self.error(403) 
    else: 
     fun(*args, **kwargs) 
    return decorate 

,並使用它們,只是裝飾處理方法:

class NewsHandler(webapp.RequestHandler): 
    # Only logged in users can read the news 
    @requiresUser 
    def get(self): 
    # Do something 

    # Only admins can post news 
    @requiresAdmin 
    def post(self): 
    # Do something 
1

如果要限制某些地區您的應用程序只有管理員可以把下列的app.yaml

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

否則,您可以檢查時,有人

class PathHandler(webapp.RequestHandler): 
    def get(self): 
    if users.get_current_user(): 
     pass #do something 
    else: 
     self.error(403) #Access denied 

def post(self): 
    if users.get_current_user(): 
     pass #do something 
    else: 
     self.error(403) #Access denied 

編輯:http://code.google.com/p/gdata-python-client/source/browse/#svn/trunk/samples/oauth/oauth_on_appengine有在appengine上使用OAuth的示例

+0

謝謝,但是這幾乎是我現在使用:) – 2009-07-31 08:23:42

+0

你可以使用http://代碼.google.com/p/gdata-python-client/source/browse /#svn/trunk/samples/oauth/oauth_on_appengine作爲模板可能? – AutomatedTester 2009-07-31 09:04:36

相關問題