def signon_register(request): if request.method != 'POST' or not 'dntconnect' in request.session: raise PermissionDenied user, message = attempt_registration(request) if user is None: messages.error(request, message) return redirect("%s#registrering" % reverse('connect.views.signon_login')) else: # The user will be sent to registration after enrollment, so both will come # this way - check which one it is if 'innmelding.aktivitet' in request.session: add_signon_session_value(request, 'innmeldt') else: add_signon_session_value(request, 'registrert') return redirect('connect.views.signon_complete')
def signon_register_nonmember(request): if request.method != 'POST' or not 'dntconnect' in request.session: raise PermissionDenied user, error_messages = attempt_registration_nonmember(request) if user is None: for message in error_messages: messages.error(request, message) request.session['user.registration_nonmember_attempt'] = { 'name': request.POST['name'], 'email': request.POST['email'] } return redirect("%s#ikkemedlem" % (reverse('connect.views.signon_login'))) else: add_signon_session_value(request, 'registrert') return redirect('connect.views.signon_complete')
def signon_login_chosen_user(request): if not 'authenticated_users' in request.session or not 'dntconnect' in request.session: raise PermissionDenied if not 'user' in request.POST: del request.session['authenticated_users'] return redirect('connect.views.signon_login') # Verify that the user authenticated for this user if not int(request.POST['user']) in request.session['authenticated_users']: del request.session['authenticated_users'] return redirect('connect.views.signon_login') # All is swell, log the user in user = User.get_users(include_pending=True).get(id=request.POST['user'], is_inactive=False) user = authenticate(user=user) log_user_in(request, user) add_signon_session_value(request, 'logget_inn') del request.session['authenticated_users'] return redirect('connect.views.signon_complete')
def signon_login(request): if not 'dntconnect' in request.session: # Use a friendlier error message here? raise PermissionDenied if request.user.is_authenticated(): # Shouldn't happen, but handle it just in case. add_signon_session_value(request, 'logget_inn') return redirect('connect:signon_complete') else: context = { 'user_password_length': settings.USER_PASSWORD_LENGTH, 'countries': FocusCountry.get_sorted(), } if 'registreringsnokkel' in request.GET: try: user = User.get_users(include_pending=True).get(pending_registration_key=request.GET['registreringsnokkel']) context['prefilled_user'] = user except User.DoesNotExist: pass if request.method == 'GET': return render(request, 'central/connect/%s/signon.html' % request.session['dntconnect']['client_id'], context) elif request.method == 'POST': matches, message = attempt_login(request) if len(matches) == 1: add_signon_session_value(request, 'logget_inn') return redirect('connect:signon_complete') elif len(matches) > 1: # Multiple matches, offer a choice between all matches request.session['authenticated_users'] = [u.id for u in matches] return redirect('connect:signon_choose_authenticated_user') else: messages.error(request, message) context['email'] = request.POST['email'] return render(request, 'central/connect/%s/signon.html' % request.session['dntconnect']['client_id'], context) else: raise PermissionDenied
def signon_register(request): if request.method != 'POST' or not 'dntconnect' in request.session: raise PermissionDenied if 'memberid' in request.POST: user, message = attempt_registration(request) error_messages = [message] else: user, error_messages = attempt_registration_nonmember(request) if user is None: return HttpResponse(json.dumps({ 'messages': error_messages, })) else: # The user will be sent to registration after enrollment, so both will come # this way - check which one it is if 'innmelding.aktivitet' in request.session: add_signon_session_value(request, 'innmeldt') else: add_signon_session_value(request, 'registrert') return HttpResponse(json.dumps({ 'redirect_url': reverse('connect:signon_complete'), }))
def signon_cancel(request): if not 'dntconnect' in request.session: raise PermissionDenied add_signon_session_value(request, 'avbrutt') return redirect('connect.views.signon_complete')