def _login_social_account(request, account): user = account.user perform_login(request, user) if not user.is_active: ret = render_to_response("socialaccount/account_inactive.html", {}, context_instance=RequestContext(request)) else: if request.is_ajax(): ret = HttpResponse( simplejson.dumps({"status": "ok", "redirect": get_login_redirect_url(request)}), mimetype="application/json", ) else: ret = HttpResponseRedirect(get_login_redirect_url(request)) return ret
def signup(request, **kwargs): if request.user.is_authenticated(): return HttpResponseRedirect(reverse(connections)) signup = request.session.get('socialaccount_signup') if not signup: return HttpResponseRedirect(reverse(login)) form_class = kwargs.pop("form_class", SignupForm) template_name = kwargs.pop("template_name", 'socialaccount/signup.html') data = signup['data'] if request.method == "POST": form = form_class(request.POST) if form.is_valid(): user = form.save(request=request) user.last_name = data.get('last_name', '') user.first_name = data.get('first_name', '') user.save() account = signup['account'] account.user = user account.save() return complete_signup(request, user, get_login_redirect_url(request)) else: form = form_class(initial=data) dictionary = dict(site=Site.objects.get_current(), account=signup['account'], form=form) return render_to_response(template_name, dictionary, RequestContext(request))
def dispatch(self, request): callback_url = reverse(self.adapter.provider_id + "_callback") client = self._get_client(request, callback_url) request.session['next'] = get_login_redirect_url(request) try: return client.get_redirect() except OAuthError: return render_authentication_error(request)
def _login_social_account(request, account): user = account.user perform_login(request, user) if not user.is_active: ret = render_to_response("socialaccount/account_inactive.html", {}, context_instance=RequestContext(request)) else: ret = HttpResponseRedirect(get_login_redirect_url(request)) return ret
def _login_social_account(request, account): user = account.user perform_login(request, user) if not user.is_active: ret = render_to_response('socialaccount/account_inactive.html', {}, context_instance=RequestContext(request)) else: ret = HttpResponseRedirect(get_login_redirect_url(request)) return ret
def dispatch(self, request): app = self.adapter.get_app(self.request) client = self.get_client(request, app) # TODO: next can be passed along to callback url, session not required request.session['next'] = get_login_redirect_url(request) try: return HttpResponseRedirect(client.get_redirect_url()) except OAuth2Error: return render_authentication_error(request)
def state_from_request(cls, request): state = dict(request.GET.iteritems()) next = get_login_redirect_url(request, fallback=None) if next: state['next'] = next distinct_id = request.GET.get('distinct_id', None) if distinct_id: state['distinct_id'] = distinct_id return state
def oauth_redirect(request, consumer_key=None, secret_key=None, request_token_url=None, access_token_url=None, authorization_url=None, callback_url=None, parameters=None): """ View to handle the OAuth based authentication redirect to the service provider """ request.session['next'] = get_login_redirect_url(request) client = OAuthClient(request, consumer_key, secret_key, request_token_url, access_token_url, authorization_url, callback_url, parameters) return client.get_redirect()
def _login_social_account(request, account): user = account.user perform_login(request, user) engine.check_achievement(user=request.user, key="facebook_login") if not user.is_active: ret = render_to_response( 'socialaccount/account_inactive.html', {}, context_instance=RequestContext(request)) else: ret = HttpResponseRedirect(get_login_redirect_url(request)) return ret
def oauth_redirect(request, consumer_key=None, secret_key=None, request_token_url=None, access_token_url=None, authorization_url=None, callback_url=None, parameters=None): """ View to handle the OAuth based authentication redirect to the service provider """ request.session['next'] = get_login_redirect_url(request) client = OAuthClient(request, consumer_key, secret_key, request_token_url, access_token_url, authorization_url, callback_url, parameters) try: return client.get_redirect() except OAuthError, e: return render_authentication_error(request)
def _process_signup(request, data, account): # If email is specified, check for duplicate and if so, no auto signup. auto_signup = app_settings.AUTO_SIGNUP email = data.get("email") if auto_signup: # Let's check if auto_signup is really possible... if email: if account_settings.UNIQUE_EMAIL: email_address = get_email_address(email) if email_address: # Oops, another user already has this address. We # cannot simply connect this social account to the # existing user. Reason is that the email adress may # not be verified, meaning, the user may be a hacker # that has added your email address to his account in # the hope that you fall in his trap. We cannot check # on 'email_address.verified' either, because # 'email_address' is not guaranteed to be verified. auto_signup = False # FIXME: We redirect to signup form -- user will # see email address conflict only after posting # whereas we detected it here already. elif account_settings.EMAIL_REQUIRED: # Nope, email is required and we don't have it yet... auto_signup = False if not auto_signup: request.session["socialaccount_signup"] = dict(data=data, account=account) ret = HttpResponseRedirect(reverse("socialaccount_signup")) else: # FIXME: There is some duplication of logic inhere # (create user, send email, in active etc..) username = generate_unique_username(data.get("username", email or "user")) u = User( username=username, email=email or "", last_name=data.get("last_name", ""), first_name=data.get("first_name", ""), ) u.set_unusable_password() u.is_active = not account_settings.EMAIL_VERIFICATION u.save() account.user = u account.save() send_email_confirmation(u, request=request) ret = complete_signup(request, u, get_login_redirect_url(request)) return ret
def state_from_request(cls, request): state = {} next = get_login_redirect_url(request, fallback=None) if next: state['next'] = next return state
def complete_social_signup(request, user, account): success_url = get_login_redirect_url(request) if app_settings.AVATAR_SUPPORT: _copy_avatar(request, user, account) return complete_signup(request, user, success_url)