2009-07-31 36 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

相关问题