def verify(request): try: auth = authenticate(request, settings.SAML_1['URL']) except SamlException as e: ctx = {'e': e} return render_to_response('registration/saml_error.html', ctx) if UserProfile.objects.filter(verified_ssn=auth['ssn']).count() > 0: taken_user = UserProfile.objects.select_related('user').get(verified_ssn=auth['ssn']).user ctx = { 'auth': auth, 'taken_user': taken_user, } auth_logout(request) return render_to_response('registration/verification_duplicate.html', ctx) profile = request.user.userprofile # It shall exist at this point profile.verified_ssn = auth['ssn'] profile.verified_name = auth['name'].encode('utf8') profile.verified_token = request.GET['token'] profile.verified_timing = datetime.now() profile.save() if hasattr(settings, 'ICEPIRATE'): # Is IcePirate support enabled? configure_external_member_db(request.user, create_if_missing=True) return HttpResponseRedirect('/')
def verify(request): try: auth = authenticate(request, settings.SAML_1['URL']) except SamlException as e: ctx = {'e': e} return render_to_response('registration/saml_error.html', ctx) if UserProfile.objects.filter(verified_ssn=auth['ssn']).count() > 0: taken_user = UserProfile.objects.select_related('user').get( verified_ssn=auth['ssn']).user ctx = { 'auth': auth, 'taken_user': taken_user, } auth_logout(request) return render_to_response('registration/verification_duplicate.html', ctx) profile = request.user.userprofile # It shall exist at this point profile.verified_ssn = auth['ssn'] profile.verified_name = auth['name'].encode('utf8') profile.verified_token = request.GET['token'] profile.verified_timing = datetime.now() profile.save() if hasattr(settings, 'ICEPIRATE'): # Is IcePirate support enabled? configure_external_member_db(request.user, create_if_missing=True) return HttpResponseRedirect('/')
def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME, authentication_form=AuthenticationForm, current_app=None, extra_context=None): """ Displays the login form and handles the login action. """ redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) if request.method == "POST": form = authentication_form(request, data=request.POST) if form.is_valid(): # Ensure the user-originating redirection url is safe. if not is_safe_url(url=redirect_to, host=request.get_host()): redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) # Okay, security check complete. Log the user in. auth_login(request, form.get_user()) # Make sure that profile exists try: UserProfile.objects.get(user=request.user) except UserProfile.DoesNotExist: profile = UserProfile() profile.user = request.user profile.save() if hasattr(settings, 'SAML_1'): # Is SAML 1.2 support enabled? if not request.user.userprofile.verified_ssn: return HttpResponseRedirect(settings.SAML_1['URL']) if hasattr(settings, 'ICEPIRATE'): # Is IcePirate support enabled? configure_external_member_db(request.user, create_if_missing=False) return HttpResponseRedirect(redirect_to) else: form = authentication_form(request) current_site = get_current_site(request) context = { 'form': form, redirect_field_name: redirect_to, 'site': current_site, 'site_name': current_site.name, } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context, current_app=current_app)
def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME, authentication_form=AuthenticationForm, current_app=None, extra_context=None): """ Displays the login form and handles the login action. """ redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) if request.method == "POST": form = authentication_form(request, data=request.POST) if form.is_valid(): # Ensure the user-originating redirection url is safe. if not is_safe_url(url=redirect_to, host=request.get_host()): redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) # Okay, security check complete. Log the user in. auth_login(request, form.get_user()) # Make sure that profile exists try: UserProfile.objects.get(user=request.user) except UserProfile.DoesNotExist: profile = UserProfile() profile.user = request.user profile.save() request.session[LANGUAGE_SESSION_KEY] = request.user.userprofile.language if hasattr(settings, 'SAML_1'): # Is SAML 1.2 support enabled? if not request.user.userprofile.user_is_verified(): return HttpResponseRedirect(settings.SAML_1['URL']) if hasattr(settings, 'ICEPIRATE'): # Is IcePirate support enabled? configure_external_member_db(request.user, create_if_missing=False) return HttpResponseRedirect(redirect_to) else: form = authentication_form(request) current_site = get_current_site(request) context = { 'form': form, redirect_field_name: redirect_to, 'site': current_site, 'site_name': current_site.name, } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context, current_app=current_app)