2009-07-31 8 views

Antwort

5

Sie können Dekoratoren definieren, um dies zu erleichtern. Zum Beispiel:

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 

Und sie zu benutzen, nur Handler Methoden dekorieren:

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 
+0

Danke das ist cool! –

1

Wenn Sie bestimmte Bereiche nur Administratoren Ihrer App beschränken möchten, können Sie das folgende in app.yaml

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

setzen sonst können Sie überprüfen, wenn jemand

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 

EDIT: http://code.google.com/p/gdata-python-client/source/browse/#svn/trunk/samples/oauth/oauth_on_appengine hat Beispiele für die Verwendung von OAuth auf appengine

+0

Danke, aber das ist fast, dass ich jetzt bin mit :) –

+0

Sie http verwenden: // Code .google.com/p/gdata-python-client/source/durchsuchen/# svn/trunk/samples/oauth/oauth_on_appengine als Vorlage vielleicht? – AutomatedTester

Verwandte Themen