from django.shortcuts import render
from django.contrib.auth import authenticate, login
from django.http.response import JsonResponse

from .forms import UserRegForm
from apps.user.models import MyUser


# Create your views here.


def user_reg(request):
    if request.method == 'GET':
        form_obj = UserRegForm()
        print('GET')
        print(form_obj)
        return render(request, 'user/user_reg.html', {'form_obj': form_obj})
    if request.method == 'POST':
        form_obj = UserRegForm(request.POST, request.FILES)
        print('POST')
        print(form_obj)
        if form_obj.is_valid():
            uname = request.POST.get('username')
            users = MyUser.objects.filter(username=uname)
            if users:
                for user in users:
                    user_img = user.user_img
                info = '用户已经存在'
            else:
                # 接受页面传参后拼接必传字段
                form_obj.cleaned_data.pop('re_password')
                form_obj.cleaned_data['is_staff'] = 1
                form_obj.cleaned_data['is_superuser'] = 0  # 非管理员
                # 插入数据库
                user = MyUser.objects.create_user(**form_obj.cleaned_data)
                user_img = user.user_img
                info = '注册成功,请登录'
            return render(request, 'user/user_reg.html', {'form_obj', form_obj})
        else:
            errors = form_obj.errors
            print(errors)
            return render(request, 'user/user_reg.html', {'form_obj': form_obj, 'errors': errors})


def user_login(request):
    return render(request, 'user/user_login.html')


def ajax_login_data(request):
    print('ajax_login_data')
    uname = request.POST.get('username')
    pwd = request.POST.get('password')
    json_dict = {}
    if uname and pwd:  # 不为空时触发登录逻辑
        if MyUser.objects.filter(username=uname):  # 查找数据库中是否存在该用户
            user = authenticate(username=uname, password=pwd)  # 验证用户
            if user:  # 验证通过
                if user.is_active:  # 验证用户是否为激活用户
                    login(request, user)  # 完成登录操作
                    json_dict['code'] = '1000'
                    json_dict['msg'] = '登录成功'
            else:
                json_dict['code'] = '1002'
                json_dict['msg'] = '密码错误'
        else:
            json_dict['code'] = '1003'
            json_dict['msg'] = '用户不存在'
    else:
        json_dict['code'] = '1004'
        json_dict['msg'] = '用户名密码为空'
    return JsonResponse(json_dict)