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 verify(request): try: auth = authenticate(request, settings.SAML_1['URL']) except SamlException as e: ctx = {'e': e} return render(request, 'registration/saml_error.html', ctx) except ParseError: logout(request) return redirect(reverse('auth_login')) # Make sure that the user is, in fact, human. if is_ssn_human_or_institution(auth['ssn']) != 'human': ctx = { 'ssn': auth['ssn'], 'name': auth['name'].encode('utf8'), } return render(request, 'registration/verification_invalid_entity.html', ctx) # Make sure that user has reached the minimum required age, if applicable. if hasattr(settings, 'AGE_LIMIT') and settings.AGE_LIMIT > 0: age = calculate_age_from_ssn(auth['ssn']) if age < settings.AGE_LIMIT: logout(request) ctx = { 'age': age, 'age_limit': settings.AGE_LIMIT, } return render(request, 'registration/verification_age_limit.html', ctx) if UserProfile.objects.filter(verified_ssn=auth['ssn']).exists(): taken_user = UserProfile.objects.select_related('user').get( verified_ssn=auth['ssn']).user ctx = { 'auth': auth, 'taken_user': taken_user, } logout(request) return render(request, '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() user_verified.send(sender=request.user.__class__, user=request.user, request=request) return HttpResponseRedirect('/')