def login_action(request): context = {} # Just display the registration form if this is a GET request. if request.method == 'GET': context['form'] = LoginForm() return render(request, 'project/login.html', context) # Creates a bound form from the request POST parameters and makes the # form available in the request context dictionary. form = LoginForm(request.POST) context['form'] = form # Validates the form. if not form.is_valid(): return render(request, 'project/login.html', context) new_user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password']) login(request, new_user) if form.cleaned_data['username'] == "SEadmin": return redirect(reverse('admin')) else: return redirect(reverse('home'))
def test_login_form_is_valid_if_auth_succeeded(): fake_user = {"fake": "user"} with patch("project.forms.authenticate", return_value=fake_user): form = LoginForm(data={ "phone_number": "5551234567", "password": "******" }) assert form.is_valid() is True assert form.authenticated_user is fake_user
def test_login_form_is_valid_if_auth_succeeded(): fake_user = {'fake': 'user'} with patch('project.forms.authenticate', return_value=fake_user): form = LoginForm(data={ 'phone_number': '5551234567', 'password': '******' }) assert form.is_valid() is True assert form.authenticated_user is fake_user
def test_login_form_is_invalid_if_auth_failed(): with patch("project.forms.authenticate", return_value=None) as auth: form = LoginForm(data={ "phone_number": "5551234567", "password": "******" }) assert form.is_valid() is False auth.assert_called_once_with(phone_number="5551234567", password="******") assert form.errors == { "__all__": ["Invalid phone number or password."] } assert form.authenticated_user is None
def test_login_form_is_invalid_if_auth_failed(): with patch('project.forms.authenticate', return_value=None) as auth: form = LoginForm(data={ 'phone_number': '5551234567', 'password': '******' }) assert form.is_valid() is False auth.assert_called_once_with(phone_number='5551234567', password='******') assert form.errors == { '__all__': ['Invalid phone number or password.'] } assert form.authenticated_user is None
def post(self, request): form = LoginForm(request.POST) if form.is_valid(): username = form.cleaned_data['login'] password = form.cleaned_data['password'] user = authenticate(username=username, password=password) if user: login(request, user) return redirect('/') else: return render(request, 'login.html', {'form': form}) else: return render(request, 'login.html', {'form': form})
def login(request): #try: # if request.session["id"]: # return HttpResponseRedirect("/personal_homepage") #except KeyError: # return HttpResponseRedirect("/noperm.html") template_var = {} if "username" in request.COOKIES and "password" in request.COOKIES: username = request.COOKIES["username"] password = request.COOKIES["password"] _userset = models.user.objects.filter(username__exact=username, password__exact=password) if _userset.count() >= 1: _user = _userset[0] request.session['username'] = _user.username request.session['realname'] = _user.realname return HttpResponseRedirect("/personal_homepage") form = LoginForm() if request.method == 'POST': form = LoginForm(request.POST.copy()) if form.is_valid(): username = form.cleaned_data["username"] password = hashlib.md5(form.cleaned_data["password"]).hexdigest() isautologin = form.cleaned_data["isautologin"] _userset = models.user.objects.filter(username__exact=username, password__exact=password) if _userset.count() >= 1: _user = _userset[0] if _user.isactived: request.session['username'] = _user.username request.session['realname'] = _user.realname request.session['id'] = _user.id #Django 认证系统的登录 try: user = auth.authenticate(username=username, password=form.cleaned_data["password"]) auth.login(request, user) except: template_var["error"] = _(u'您输入的帐号或密码有误,请重新输入') response = HttpResponseRedirect("/personal_homepage") if isautologin: response.set_cookie("username", username, 3600) response.set_cookie("password", password, 3600) return response else: template_var["error"] = _(u'您输入的帐号未激活,请联系管理员') else: template_var["error"] = _(u'您输入的帐号或密码有误,请重新输入') template_var["form"] = form return render_to_response("login.html", template_var, context_instance=RequestContext(request))
def login_view(request): html = 'generic_form.html' if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): data = form.cleaned_data user = authenticate(username=data['username'], password=data['password']) if user is not None: login(request, user) return HttpResponseRedirect(reverse('home')) else: form = LoginForm() return render(request, html, {'form': form})
def user_login(request): form = LoginForm(request.POST or None) if form.is_valid(): login(request, form.user_cache) return redirect(home) return render_to_response('user/login.html', {'form':form}, context_instance=RequestContext(request))