Вы можете определить декораторы, чтобы сделать это проще. Например:
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