예제 #1
0
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'))
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
 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})
예제 #7
0
파일: views.py 프로젝트: semis2008/Qsystem
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))
예제 #8
0
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})
예제 #9
0
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))