def login(request): init_third_party_session(request) force_login = request.GET.get('force_login', settings.TWITTER_AUTH_FORCE_LOGIN) oauth = OAuth1(settings.TWITTER_TOKEN, client_secret=settings.TWITTER_SECRET) resp = requests.post(url=request_token_url, auth=oauth) if resp.status_code != 200: messages.error(request, 'Invalid Twitter response') logger.error("Invalid twitter response (code: %d) %s", resp.status_code, resp.content) return HttpResponseRedirect(reverse('edit_profile')) oa_resp = dict(parse_qsl(resp.content)) if 'status' in oa_resp and oa_resp['status'] != '200': messages.error(request, 'Invalid Twitter response') logger.error("Invalid twitter response %s", resp) return HttpResponseRedirect(reverse('edit_profile')) request.session['request_token'] = oa_resp params = { 'oauth_token': request.session['request_token']['oauth_token'], } if force_login: params['force_login'] = 1 if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') url = "%s?%s" % (authenticate_url, urlencode(params)) return HttpResponseRedirect(url)
def login(request): init_third_party_session(request) force_login = request.GET.get('force_login', settings.TWITTER_AUTH_FORCE_LOGIN) consumer = oauth.Consumer(settings.TWITTER_TOKEN, settings.TWITTER_SECRET) client = oauth.Client(consumer) resp, content = client.request(request_token_url, "GET") if resp['status'] != '200': messages.error(request, 'Invalid Twitter response') logger.error("Invalid twitter response %s", resp) return HttpResponseRedirect(reverse('edit_profile')) oa_resp = dict(cgi.parse_qsl(content)) if 'status' in oa_resp and oa_resp['status'] != '200': messages.error(request, 'Invalid Twitter response') logger.error("Invalid twitter response %s", resp) return HttpResponseRedirect(reverse('edit_profile')) request.session['request_token'] = dict(cgi.parse_qsl(content)) params = { 'oauth_token': request.session['request_token']['oauth_token'], } if force_login: params['force_login'] = 1 if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') url = "%s?%s" % (authenticate_url, urllib.urlencode(params)) return HttpResponseRedirect(url)
def login(request): init_third_party_session(request) oauth = OAuth1(settings.LINKEDIN_TOKEN, client_secret=settings.LINKEDIN_SECRET) resp = requests.post(url=request_token_url, auth=oauth) if resp.status_code != 200: messages.error(request, 'Invalid LinkedIn response') logger.error( "Invalid LinkedIn response while getting request token " + "(code: %d) %s", resp.status_code, resp.content) return HttpResponseRedirect(reverse('edit_profile')) oa_resp = dict(parse_qsl(resp.content)) request.session['request_token'] = oa_resp url = oa_resp.get('xoauth_request_auth_url') + \ "?oauth_token=%s" % oa_resp.get('oauth_token') if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') return HttpResponseRedirect(url)
def login(request, template="im/third_party_check_local.html", extra_context=None): init_third_party_session(request) extra_context = extra_context or {} tokens = request.META third_party_key = get_pending_key(request) shibboleth_headers = {} for token in dir(Tokens): if token == token.upper(): shibboleth_headers[token] = request.META.get(getattr(Tokens, token), "NOT_SET") # also include arbitrary shibboleth headers for key in request.META.keys(): if key.startswith("HTTP_SHIB_"): shibboleth_headers[key.replace("HTTP_", "")] = request.META.get(key) # log shibboleth headers # TODO: info -> debug logger.info("shibboleth request: %r" % shibboleth_headers) try: eppn = tokens.get(Tokens.SHIB_EPPN, None) user_id = tokens.get(Tokens.SHIB_REMOTE_USER) fullname, first_name, last_name, email = None, None, None, None if global_settings.DEBUG and not eppn: user_id = getattr(global_settings, "SHIBBOLETH_TEST_REMOTE_USER", None) eppn = getattr(global_settings, "SHIBBOLETH_TEST_EPPN", None) fullname = getattr(global_settings, "SHIBBOLETH_TEST_FULLNAME", None) if not user_id: raise KeyError( _(astakos_messages.SHIBBOLETH_MISSING_USER_ID) % {"domain": settings.BASE_HOST, "contact_email": settings.CONTACT_EMAIL} ) if Tokens.SHIB_DISPLAYNAME in tokens: fullname = tokens[Tokens.SHIB_DISPLAYNAME] elif Tokens.SHIB_CN in tokens: fullname = tokens[Tokens.SHIB_CN] if Tokens.SHIB_NAME in tokens: first_name = tokens[Tokens.SHIB_NAME] if Tokens.SHIB_SURNAME in tokens: last_name = tokens[Tokens.SHIB_SURNAME] if fullname: splitted = fullname.split(" ", 1) if len(splitted) == 2: first_name, last_name = splitted fullname = "%s %s" % (first_name, last_name) if not any([first_name, last_name]) and settings.SHIBBOLETH_REQUIRE_NAME_INFO: raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_NAME)) except KeyError, e: # invalid shibboleth headers, redirect to login, display message logger.exception(e) messages.error(request, e.message) return HttpResponseRedirect(login_url(request))
def login( request, template='im/third_party_check_local.html', extra_context=None): init_third_party_session(request) extra_context = extra_context or {} tokens = request.META third_party_key = get_pending_key(request) shibboleth_headers = {} for token in dir(Tokens): if token == token.upper(): shibboleth_headers[token] = request.META.get(getattr(Tokens, token), 'NOT_SET') # also include arbitrary shibboleth headers for key in request.META.keys(): if key.startswith('HTTP_SHIB_'): shibboleth_headers[key.replace('HTTP_', '')] = \ request.META.get(key) # log shibboleth headers # TODO: info -> debug logger.info("shibboleth request: %r" % shibboleth_headers) try: eppn = tokens.get(Tokens.SHIB_EPPN) if global_settings.DEBUG and not eppn: eppn = getattr(global_settings, 'SHIBBOLETH_TEST_EPPN', None) realname = getattr(global_settings, 'SHIBBOLETH_TEST_REALNAME', None) if not eppn: raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_EPPN) % { 'domain': settings.BASE_HOST, 'contact_email': settings.CONTACT_EMAIL }) if Tokens.SHIB_DISPLAYNAME in tokens: realname = tokens[Tokens.SHIB_DISPLAYNAME] elif Tokens.SHIB_CN in tokens: realname = tokens[Tokens.SHIB_CN] elif Tokens.SHIB_NAME in tokens and Tokens.SHIB_SURNAME in tokens: realname = tokens[Tokens.SHIB_NAME] + ' ' + tokens[Tokens.SHIB_SURNAME] else: if settings.SHIBBOLETH_REQUIRE_NAME_INFO: raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_NAME)) else: realname = '' except KeyError, e: # invalid shibboleth headers, redirect to login, display message messages.error(request, e.message) return HttpResponseRedirect(login_url(request))
def login(request): init_third_party_session(request) oauth = OAuth2Session(settings.GOOGLE_CLIENT_ID, redirect_uri=get_redirect_uri(), scope=token_scope) params = {} force_login = request.GET.get('force_login', request.GET.get('from_login', True)) if force_login: params['approval_prompt'] = 'force' if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') auth_url, state = oauth.authorization_url(authenticate_url, **params) return HttpResponseRedirect(auth_url)
def login(request): init_third_party_session(request) params = { 'scope': token_scope, 'response_type': 'code', 'redirect_uri': get_redirect_uri(), 'client_id': settings.GOOGLE_CLIENT_ID } force_login = request.GET.get('force_login', request.GET.get('from_login', True)) if force_login: params['approval_prompt'] = 'force' if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') url = "%s?%s" % (authenticate_url, urllib.urlencode(params)) return HttpResponseRedirect(url)
def login(request): init_third_party_session(request) consumer = oauth.Consumer(settings.LINKEDIN_TOKEN, settings.LINKEDIN_SECRET) client = oauth.Client(consumer) resp, content = client.request(request_token_url, "GET") if resp["status"] != "200": messages.error(request, "Invalid linkedin response") return HttpResponseRedirect(reverse("edit_profile")) request_token = dict(cgi.parse_qsl(content)) request.session["request_token"] = request_token url = request_token.get("xoauth_request_auth_url") + "?oauth_token=%s" % request_token.get("oauth_token") if request.GET.get("key", None): request.session["pending_key"] = request.GET.get("key") if request.GET.get("next", None): request.session["next_url"] = request.GET.get("next") return HttpResponseRedirect(url)
def login(request): init_third_party_session(request) consumer = oauth.Consumer(settings.LINKEDIN_TOKEN, settings.LINKEDIN_SECRET) client = oauth.Client(consumer) resp, content = client.request(request_token_url, "GET") if resp['status'] != '200': messages.error(request, 'Invalid linkedin response') return HttpResponseRedirect(reverse('edit_profile')) request_token = dict(cgi.parse_qsl(content)) request.session['request_token'] = request_token url = request_token.get('xoauth_request_auth_url') + \ "?oauth_token=%s" % request_token.get('oauth_token') if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') return HttpResponseRedirect(url)
def login(request): init_third_party_session(request) oauth = OAuth1(settings.LINKEDIN_TOKEN, client_secret=settings.LINKEDIN_SECRET) resp = requests.post(url=request_token_url, auth=oauth) if resp.status_code != 200: messages.error(request, 'Invalid LinkedIn response') logger.error("Invalid LinkedIn response while getting request token " + "(code: %d) %s", resp.status_code, resp.content) return HttpResponseRedirect(reverse('edit_profile')) oa_resp = dict(parse_qsl(resp.content)) request.session['request_token'] = oa_resp url = oa_resp.get('xoauth_request_auth_url') + \ "?oauth_token=%s" % oa_resp.get('oauth_token') if request.GET.get('key', None): request.session['pending_key'] = request.GET.get('key') if request.GET.get('next', None): request.session['next_url'] = request.GET.get('next') return HttpResponseRedirect(url)
def login(request, template='im/third_party_check_local.html', extra_context=None): init_third_party_session(request) extra_context = extra_context or {} tokens = request.META third_party_key = get_pending_key(request) shibboleth_headers = {} for token in dir(Tokens): if token == token.upper(): shibboleth_headers[token] = request.META.get(getattr(Tokens, token), 'NOT_SET') # also include arbitrary shibboleth headers for key in request.META.keys(): if key.startswith('HTTP_SHIB_'): shibboleth_headers[key.replace('HTTP_', '')] = \ request.META.get(key) # log shibboleth headers # TODO: info -> debug logger.info("shibboleth request: %r" % shibboleth_headers) try: eppn = tokens.get(Tokens.SHIB_EPPN, None) user_id = tokens.get(Tokens.SHIB_REMOTE_USER) fullname, first_name, last_name, email = None, None, None, None if global_settings.DEBUG and not eppn: user_id = getattr(global_settings, 'SHIBBOLETH_TEST_REMOTE_USER', None) eppn = getattr(global_settings, 'SHIBBOLETH_TEST_EPPN', None) fullname = getattr(global_settings, 'SHIBBOLETH_TEST_FULLNAME', None) if not user_id: raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_USER_ID) % { 'domain': settings.BASE_HOST, 'contact_email': settings.CONTACT_EMAIL }) if Tokens.SHIB_DISPLAYNAME in tokens: fullname = tokens[Tokens.SHIB_DISPLAYNAME] elif Tokens.SHIB_CN in tokens: fullname = tokens[Tokens.SHIB_CN] if Tokens.SHIB_NAME in tokens: first_name = tokens[Tokens.SHIB_NAME] if Tokens.SHIB_SURNAME in tokens: last_name = tokens[Tokens.SHIB_SURNAME] if fullname: splitted = fullname.split(' ', 1) if len(splitted) == 2: first_name, last_name = splitted fullname = '%s %s' % (first_name, last_name) if not any([first_name, last_name]) and \ settings.SHIBBOLETH_REQUIRE_NAME_INFO: raise KeyError(_(astakos_messages.SHIBBOLETH_MISSING_NAME)) except KeyError, e: # invalid shibboleth headers, redirect to login, display message logger.exception(e) messages.error(request, e.message) return HttpResponseRedirect(login_url(request))