From f427c53ecc593882918a64999407b3ebc696ce45 Mon Sep 17 00:00:00 2001 From: Joe Gregorio Date: Mon, 13 Jun 2011 09:35:26 -0400 Subject: [PATCH] Reviewed in http://codereview.appspot.com/4515195/ --- oauth2client/appengine.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/oauth2client/appengine.py b/oauth2client/appengine.py index 5600387..71aa8f0 100644 --- a/oauth2client/appengine.py +++ b/oauth2client/appengine.py @@ -220,12 +220,16 @@ class OAuth2Decorator(object): method: callable, to be decorated method of a webapp.RequestHandler instance. """ - @login_required def check_oauth(request_handler, *args): + user = users.get_current_user() + # Don't use @login_decorator as this could be used in a POST request. + if not user: + request_handler.redirect(users.create_login_url( + request_handler.request.uri)) + return # Store the request URI in 'state' so we can use it later self.flow.params['state'] = request_handler.request.url self._request_handler = request_handler - user = users.get_current_user() self.credentials = StorageByKeyName( CredentialsModel, user.user_id(), 'credentials').get() @@ -251,11 +255,15 @@ class OAuth2Decorator(object): method: callable, to be decorated method of a webapp.RequestHandler instance. """ - @login_required def setup_oauth(request_handler, *args): + user = users.get_current_user() + # Don't use @login_decorator as this could be used in a POST request. + if not user: + request_handler.redirect(users.create_login_url( + request_handler.request.uri)) + return self.flow.params['state'] = request_handler.request.url self._request_handler = request_handler - user = users.get_current_user() self.credentials = StorageByKeyName( CredentialsModel, user.user_id(), 'credentials').get() method(request_handler, *args)