def login(request): from django.contrib.auth import login as auth_login, REDIRECT_FIELD_NAME from website.forms import LoginForm redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '') if request.method == "POST": form = LoginForm(data=request.POST) if form.is_valid(): user = form.get_user() if not redirect_to or ' ' in redirect_to: redirect_to = settings.LOGIN_REDIRECT_URL elif '//' in redirect_to and re.match(r'[^\?]*//', redirect_to): redirect_to = settings.LOGIN_REDIRECT_URL if not form.cleaned_data['remember']: request.session.set_expiry(0) auth_login(request, user) if request.session.test_cookie_worked(): request.session.delete_test_cookie() return redirect(redirect_to) else: form = LoginForm(request) request.session.set_test_cookie() return render(request, 'login.html', {'form': form, REDIRECT_FIELD_NAME: redirect_to})
def dashboard_login_external(request, language_code): context = RequestContext(request) if context.get('user').is_authenticated(): return redirect('index_external', language_code=language_code) if request.method == "POST": form_login = LoginForm(request.POST) if form_login.validate(): user = form_login.get_user() login(request, user) if request.POST.get('remember', None): request.session.set_expiry(0) return redirect('index') else: form_login = LoginForm() context.update({'form_login': form_login, 'language_code': language_code}) return render_to_response('login_external.html', context_instance=context)
def dashboard_login(request): context = RequestContext(request) if context.get('user').is_authenticated(): return redirect('index') if request.method == "POST": form_login = LoginForm(request.POST) if form_login.validate(): user = form_login.get_user() login(request, user) if request.POST.get('remember', None): request.session.set_expiry(0) return redirect('index') else: form_login = LoginForm() context.update({'form_login': form_login}) return render_to_response('login.html', context_instance=context)