Beispiel #1
0
def my_login(request):
    curr_url = request.GET.get('next','/teacher')
    error=''
    if request.method =='POST':
        result = {}
        form = crm_forms.LoginForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = authenticate(
                username = cd['username'],
                password = cd['password'],
            )
            if user:
                login(request,user)
                human_username = models.UserProfile.objects.get(email=request.POST['username'])
                request.session['username']=human_username.name
                request.session['email']=request.POST['username']

                response = HttpResponseRedirect(curr_url)
                return response
            else:
                error = '用户名或密码错误'
                form = crm_forms.LoginForm(request.POST)

                return render(request, 'teacher/login.html', {'form': form,'error':error})
        else:
            error='请输入用户名/密码'
    form = crm_forms.LoginForm()
    return render(request,'teacher/login.html',{'form':form,'error':error})
Beispiel #2
0
def login(request):
    """登录功能"""
    register_obj = forms.RegisterForm()  # 获取RegisterForm对象
    if request.method == "GET":
        login_obj = forms.LoginForm()
        return render(request, "login.html", {"login_obj": login_obj, "register_obj": register_obj})  # 返回登录注册页面
    elif request.method == "POST":
        login_obj = forms.LoginForm(request.POST)
        if login_obj.is_valid():
            request.session.clear_expired()  # 清空过期的session
            username = login_obj.clean().get("username")  # 获取用户名
            if login_obj.clean().get("remember", None) == "True":
                request.session["username"] = username  # 设置session
            return render(request, "index.html", {"username": username})
        else:
            return render(request, "login.html", {"login_obj": login_obj, "register_obj": register_obj})
Beispiel #3
0
 def get(self, request, *args, **kwargs):
     if request.user.is_authenticated:
         url = reverse('base', args=args, kwargs=kwargs)
         return HttpResponseRedirect(url)
     login_form = forms.LoginForm()
     if 'login_form' not in kwargs:
         kwargs.update(dict(login_form=login_form))
     return super().get(request=request, *args, **kwargs)
Beispiel #4
0
def login(request):
    err_msg = ''
    form_obj = forms.LoginForm()
    if request.method == 'POST':
        form_obj = forms.LoginForm(request.POST)
        if form_obj.is_valid():
            username = form_obj.cleaned_data['username']
            password = form_obj.cleaned_data['password']
            user = auth.authenticate(request,
                                     username=username,
                                     password=password)
            if user is not None:
                auth.login(request, user)

                init_permission(user, request)
                return redirect('index')

            err_msg = '用户名或密码错误'

    return render(request, 'login.html', locals())
Beispiel #5
0
    def post(self, request, *args, **kwargs):
        login_form = forms.LoginForm(request.POST)

        login_form.full_clean()
        if login_form.is_valid():
            username = User.normalize_username(
                login_form.cleaned_data['email'])
            user_exists = User.objects.filter(username=username).exists()

            if not user_exists:
                login_form.add_error('email', 'Пользователь не найден')

            user = authenticate(request,
                                username=username,
                                password=login_form.cleaned_data['password'])
            print(user)
            if user is None and user_exists:
                from crm.utils.backends import CustomModelBackend
                if CustomModelBackend.is_user_failed_attempts_exceeded(
                        username):
                    login_form.add_error(
                        'email',
                        'Пользователь временно заблокирован за превышение количества '
                        'попыток входа. Пожалуйста, повторите попытку позже.')
                else:
                    login_form.add_error('password', 'Неверный пароль')

            if user:
                login(request, user)

                url = reverse('base', args=args, kwargs=kwargs)
                return HttpResponseRedirect(url)
            else:
                kwargs['login_form'] = login_form
                return self.get(request, *args, **kwargs)
        else:
            kwargs.update(dict(login_form=login_form))
            return self.get(request=request, *args, **kwargs)