예제 #1
0
def user_login(request):
    if request.method == 'GET':
        return render(request, 'users/login.html', {})
    else:
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']
            a = authenticate(username=email, password=password)
            if a:
                if a.is_start:
                    login(request, a)
                    msg = UserMessageInfo()
                    msg.userinfo = a.id
                    msg.message = '欢迎登录尚在线'
                    msg.save()
                    # return redirect(reverse('index'))
                    url = request.COOKIES.get('url', '/')
                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                else:
                    return HttpResponse('请去激活')
            else:
                return render(request, 'users/login.html',
                              {'msg': '用户名或者密码有误'})
        else:
            return render(request, 'users/login.html',
                          {'user_login_form': user_login_form})
예제 #2
0
    def post(self, request):
        user_register_form = UserRegisterForm(request.POST)
        if user_register_form.is_valid():
            email = user_register_form.cleaned_data['email']
            password = user_register_form.cleaned_data['password']
            user = UserProfile.objects.filter(
                Q(email=email) | Q(username=email))
            if user:
                return render(request, 'users/register.html',
                              {'msg': '用户已经存在'})
            else:
                a = UserProfile()
                a.username = email
                a.email = email
                a.set_password(password)
                a.save()

                # 注册成功之后先创建一条消息存储,然后发邮件
                msg = UserMessageInfo()
                msg.userinfo = a.id
                msg.message = '欢迎注册尚在线'
                msg.save()

                send_email_verify(email, 'register')

                return HttpResponse('您的邮件已经发送,请尽快去激活')
        else:
            return render(request, 'users/register.html',
                          {'user_register_form': user_register_form})
예제 #3
0
def user_login(request):
    if request.method == 'GET':
        return render(request, 'users/login.html')
    else:
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']
            # authenticate只验证username和password ,不能用Q,且django1.11 版本,自动验证is_alive 子段,如果为0,则
            # 用户名密码正确也会返回None
            a = authenticate(username=email, password=password)
            if a:
                if a.is_start:
                    login(request, a)
                    msg = UserMessageInfo()
                    msg.userinfo = a.id
                    msg.message = '欢迎登录尚在线'
                    msg.save()
                    url = request.COOKIES.get("url", "/")
                    ret = redirect(url)
                    ret.delete_cookie('url')
                    return ret
                    # return redirect(reverse('index'))
                else:
                    return HttpResponse('请先激活')
            else:
                return render(request, 'users/login.html', {'msg': '用户名或密码错误'})
        else:
            return render(request, 'users/login.html',
                          {'user_login_form': user_login_form})
예제 #4
0
def user_register(request):
    if request.method == 'GET':
        user_register_form = UserRegisterForm()
        return render(request, 'users/register.html',
                      {'user_register_form': user_register_form})
    else:
        user_register_form = UserRegisterForm(request.POST)
        if user_register_form.is_valid():
            email = user_register_form.cleaned_data['email']
            password = user_register_form.cleaned_data['password']
            user = UserProfile.objects.filter(
                Q(username=email) | Q(email=email))
            if user:
                return render(request, 'users/register.html', {
                    'msg': '用户名已存在',
                    'user_register_form': user_register_form
                })
            else:
                user = UserProfile()
                user.email = email
                user.set_password(password)
                user.username = email
                user.save()
                # 注册成功,存储消息
                msg = UserMessageInfo()
                msg.message = '欢迎注册尚在线'
                msg.userinfo = user.id
                msg.save()
                send_email_verify(email, 'register')
                return HttpResponse('激活链接以发到你的邮箱,请你前去激活')
        else:
            return render(request, 'users/register.html',
                          {'user_register_form': user_register_form})
예제 #5
0
def user_active(request, code):
    if code:
        email_ver = EmailVerify.objects.filter(code=code)[0]
        if email_ver:
            email = email_ver.email
            user = UserProfile.objects.filter(email=email)[0]
            user.is_start = True
            user.save()
            msg = UserMessageInfo()
            msg.userinfo = user.id
            msg.message = '激活成功'
            msg.save()
            return redirect(reverse('users:user_login'))
        else:
            return HttpResponse('验证码错误,激活失败')
예제 #6
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            email = user_login_form.cleaned_data['email']
            password = user_login_form.cleaned_data['password']
            a = authenticate(username=email, password=password)
            if a:
                if a.is_start:
                    login(request, a)

                    msg = UserMessageInfo()
                    msg.userinfo = a.id
                    msg.message = '欢迎登录'
                    msg.save()

                    return redirect(reverse('index'))
                else:
                    return HttpResponse('请去激活')
            else:
                return render(request, 'users/login.html', {'msg': '用户名或者密码有误'})
        else:
            return render(request, 'users/login.html', {'user_login_form': user_login_form})
예제 #7
0
def user_reset(request, code):
    if request.method == 'GET':
        if code:
            email_ver = EmailVerify.objects.filter(code=code)[0]
            email = email_ver.email
            user = UserProfile.objects.filter(email=email)[0]
            return render(request, 'users/password_reset.html', {
                'user_id': user.id,
            })
        else:
            pass
    else:
        user_reset_form = UserResetForm(request.POST)
        if user_reset_form.is_valid():
            password = user_reset_form.cleaned_data['password']
            password1 = user_reset_form.cleaned_data['password1']
            if code:
                user = UserProfile.objects.filter(id=int(code))
                if user:
                    if password == password1:
                        user[0].set_password(password)
                        user[0].save()
                        msg = UserMessageInfo()
                        msg.userinfo = user[0].id
                        msg.message = '找回密码成功'
                        msg.save()
                        return redirect(reverse('users:user_login'))
                    else:
                        return render(request, 'users/password_reset.html',
                                      {'msg': '两次密码输入不一致'})
                else:
                    pass
            else:
                pass
        else:
            return render(request, 'users/password_reset.html',
                          {'user_reset_form': user_reset_form})