# HG changeset patch # User ymh # Date 1469462017 -7200 # Node ID 2f5825406bb1100f3f1223d1735ade55a9d1c303 # Parent 6dd757470037c76b697220186d98a55d49002a93 correct concat to None diff -r 6dd757470037 -r 2f5825406bb1 server/src/metaeducation/mtdc_oauth_provider/views.py --- a/server/src/metaeducation/mtdc_oauth_provider/views.py Mon Jul 25 17:39:29 2016 +0200 +++ b/server/src/metaeducation/mtdc_oauth_provider/views.py Mon Jul 25 17:53:37 2016 +0200 @@ -33,12 +33,12 @@ class MtdcOAuth2Adapter(OAuth2Adapter, DefaultSocialAccountAdapter): provider_id = MtdcProvider.id supports_state = False - + oauth_base_url = "" access_token_url = "" authorize_url = "" profile_url = "" - + def __init__(self, request=None): if request: logger.debug("AUTHORIZATION CODE AUTH: init adapter") @@ -48,23 +48,24 @@ logger.debug("AUTHORIZATION CODE AUTH: context queryarg is %r", request.GET.get("context", None)) self.oauth_base_url = request.session.get("OAUTH_CONTEXT_BASE_URL", None) logger.debug("AUTHORIZATION CODE AUTH: context is %r", self.oauth_base_url) - self.access_token_url = self.oauth_base_url + settings.MTDC_ACCESS_TOKEN_URL - self.authorize_url = self.oauth_base_url + settings.MTDC_AUTHORIZE_URL - self.profile_url = self.oauth_base_url + settings.MTDC_PROFILE_URL - + if self.oauth_base_url: + self.access_token_url = self.oauth_base_url + settings.MTDC_ACCESS_TOKEN_URL + self.authorize_url = self.oauth_base_url + settings.MTDC_AUTHORIZE_URL + self.profile_url = self.oauth_base_url + settings.MTDC_PROFILE_URL + def pre_social_login(self, request, sociallogin): try: logger.debug("AUTHORIZATION CODE AUTH: login almost complete, checking if user %r exists", sociallogin.account.extra_data.get('external_id', 'NO_ID')) user = get_user_model().objects.get(external_id=sociallogin.account.extra_data.get('external_id', '')) # if user exists, connect the account to the existing account and login logger.debug("AUTHORIZATION CODE AUTH: user %r exists, connecting to existing account", sociallogin.account.extra_data.get('external_id', 'NO_ID')) - sociallogin.state['process'] = 'connect' + sociallogin.state['process'] = 'connect' perform_login(request, user, 'none') except get_user_model().DoesNotExist: logger.debug("AUTHORIZATION CODE AUTH: user %r does not exist", sociallogin.account.extra_data.get('external_id', 'NO_ID')) - + def get_login_redirect_url(self, request): return super(MtdcOAuth2Adapter, self).get_login_redirect_url(self, request) - + def new_user(self, request, sociallogin): if 'external_id' in sociallogin.account.extra_data: logger.debug("AUTHORIZATION CODE AUTH: checking if user %r exists to populate sociallogin", sociallogin.account.extra_data.get('external_id', 'NO_ID')) @@ -79,7 +80,7 @@ else: logger.debug("AUTHORIZATION CODE AUTH: no external_id in extra data") return get_user_model()() - + def populate_user(self, request, sociallogin, @@ -92,13 +93,13 @@ user.last_name = sociallogin.account.extra_data.get('last_name', '') user.save() return user - + def complete_login(self, request, app, token, **kwargs): logger.debug("AUTHORIZATION CODE AUTH: complete_login: getting profile info") resp = requests.get(self.profile_url, params={'access_token': token.token}) extra_data = resp.json() - + logger.debug("AUTHORIZATION CODE AUTH: response extra_data: %r ", extra_data) return self.get_provider().sociallogin_from_response(request, extra_data) @@ -125,4 +126,4 @@ oauth2_login = MtdcOAuth2LoginView.adapter_view(MtdcOAuth2Adapter) -oauth2_callback = MtdcOAuth2CallbackView.adapter_view(MtdcOAuth2Adapter) \ No newline at end of file +oauth2_callback = MtdcOAuth2CallbackView.adapter_view(MtdcOAuth2Adapter)