2020-01-01 21:24:29 +08:00
|
|
|
|
# coding:utf-8
|
2019-07-21 22:08:04 +08:00
|
|
|
|
from django.shortcuts import render,redirect
|
2020-01-01 21:24:29 +08:00
|
|
|
|
from django.http.response import JsonResponse,HttpResponse,Http404
|
2019-07-21 22:08:04 +08:00
|
|
|
|
from django.contrib.auth import authenticate,login,logout # 认证相关方法
|
|
|
|
|
from django.contrib.auth.models import User # Django默认用户模型
|
|
|
|
|
from django.contrib.auth.decorators import login_required # 登录需求装饰器
|
2019-11-03 20:36:34 +08:00
|
|
|
|
from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage,InvalidPage # 后端分页
|
2019-12-01 20:44:16 +08:00
|
|
|
|
from app_admin.decorators import superuser_only,open_register
|
|
|
|
|
import json,datetime,hashlib
|
2019-07-25 15:25:27 +08:00
|
|
|
|
from app_doc.models import *
|
2019-12-01 20:44:16 +08:00
|
|
|
|
from app_admin.models import *
|
|
|
|
|
from app_admin.utils import *
|
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
2019-07-25 21:47:26 +08:00
|
|
|
|
# 返回验证码图片
|
|
|
|
|
def check_code(request):
|
|
|
|
|
import io
|
|
|
|
|
from . import check_code as CheckCode
|
|
|
|
|
stream = io.BytesIO()
|
|
|
|
|
# img图片对象,code在图像中写的内容
|
|
|
|
|
img, code = CheckCode.create_validate_code()
|
|
|
|
|
img.save(stream, "png")
|
|
|
|
|
# 图片页面中显示,立即把session中的CheckCode更改为目前的随机字符串值
|
|
|
|
|
request.session["CheckCode"] = code
|
|
|
|
|
return HttpResponse(stream.getvalue())
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
2019-07-25 22:17:34 +08:00
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 登录视图
|
|
|
|
|
def log_in(request):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
if request.user.is_authenticated:
|
2019-07-25 22:17:34 +08:00
|
|
|
|
return redirect('/')
|
2019-07-21 22:08:04 +08:00
|
|
|
|
else:
|
|
|
|
|
return render(request,'login.html',locals())
|
|
|
|
|
elif request.method == 'POST':
|
2019-07-25 22:17:34 +08:00
|
|
|
|
try:
|
|
|
|
|
username = request.POST.get('username','')
|
|
|
|
|
pwd = request.POST.get('password','')
|
|
|
|
|
if username != '' and pwd != '':
|
|
|
|
|
user = authenticate(username=username,password=pwd)
|
|
|
|
|
if user is not None:
|
|
|
|
|
if user.is_active:
|
|
|
|
|
login(request,user)
|
|
|
|
|
return redirect('/')
|
|
|
|
|
else:
|
|
|
|
|
errormsg = '用户被禁用!'
|
|
|
|
|
return render(request, 'login.html', locals())
|
2019-07-21 22:08:04 +08:00
|
|
|
|
else:
|
2019-07-25 22:17:34 +08:00
|
|
|
|
errormsg = '用户名或密码错误!'
|
2019-07-21 22:08:04 +08:00
|
|
|
|
return render(request, 'login.html', locals())
|
|
|
|
|
else:
|
|
|
|
|
errormsg = '用户名或密码错误!'
|
|
|
|
|
return render(request, 'login.html', locals())
|
2019-07-25 22:17:34 +08:00
|
|
|
|
except Exception as e:
|
|
|
|
|
return HttpResponse('请求出错')
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 注册视图
|
2019-12-01 20:44:16 +08:00
|
|
|
|
@open_register
|
2019-07-21 22:08:04 +08:00
|
|
|
|
def register(request):
|
2019-07-24 18:09:18 +08:00
|
|
|
|
if request.user.is_authenticated:
|
|
|
|
|
return redirect('/')
|
|
|
|
|
else:
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
return render(request,'register.html',locals())
|
2019-07-25 11:04:47 +08:00
|
|
|
|
elif request.method == 'POST':
|
|
|
|
|
username = request.POST.get('username',None)
|
|
|
|
|
email = request.POST.get('email',None)
|
|
|
|
|
password = request.POST.get('password',None)
|
2019-07-25 21:47:26 +08:00
|
|
|
|
checkcode = request.POST.get("check_code",None)
|
2019-07-25 11:04:47 +08:00
|
|
|
|
if username and email and password:
|
|
|
|
|
if '@'in email:
|
|
|
|
|
email_exit = User.objects.filter(email=email)
|
|
|
|
|
username_exit = User.objects.filter(username=username)
|
|
|
|
|
if email_exit.count() > 0:
|
2019-12-01 20:44:16 +08:00
|
|
|
|
errormsg = '此电子邮箱已被注册!'
|
2019-07-25 11:04:47 +08:00
|
|
|
|
return render(request, 'register.html', locals())
|
|
|
|
|
elif username_exit.count() > 0:
|
2019-12-01 20:44:16 +08:00
|
|
|
|
errormsg = '用户名已被使用!'
|
2019-07-25 11:04:47 +08:00
|
|
|
|
return render(request, 'register.html', locals())
|
|
|
|
|
elif len(password) < 6:
|
|
|
|
|
errormsg = '密码必须大于等于6位!'
|
|
|
|
|
return render(request, 'register.html', locals())
|
2019-07-25 21:47:26 +08:00
|
|
|
|
elif checkcode != request.session['CheckCode'].lower():
|
|
|
|
|
errormsg = "验证码错误"
|
|
|
|
|
return render(request, 'register.html', locals())
|
2019-07-25 11:04:47 +08:00
|
|
|
|
else:
|
2019-07-25 21:47:26 +08:00
|
|
|
|
# 创建用户
|
|
|
|
|
user = User.objects.create_user(username=username, email=email, password=password)
|
|
|
|
|
user.save()
|
|
|
|
|
# 登录用户
|
|
|
|
|
user = authenticate(username=username, password=password)
|
|
|
|
|
if user.is_active:
|
|
|
|
|
login(request, user)
|
|
|
|
|
return redirect('/')
|
|
|
|
|
else:
|
|
|
|
|
errormsg = '用户被禁用!'
|
|
|
|
|
return render(request, 'register.html', locals())
|
2019-07-25 11:04:47 +08:00
|
|
|
|
else:
|
|
|
|
|
errormsg = '请输入正确的电子邮箱格式!'
|
|
|
|
|
return render(request, 'register.html', locals())
|
2019-07-25 21:47:26 +08:00
|
|
|
|
else:
|
|
|
|
|
errormsg = "请检查输入值"
|
|
|
|
|
return render(request, 'register.html', locals())
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 注销
|
|
|
|
|
def log_out(request):
|
|
|
|
|
try:
|
|
|
|
|
logout(request)
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(e)
|
|
|
|
|
# logger.error(e)
|
|
|
|
|
return redirect(request.META['HTTP_REFERER'])
|
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
2019-12-01 20:44:16 +08:00
|
|
|
|
# 忘记密码
|
|
|
|
|
def forget_pwd(request):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
return render(request,'forget_pwd.html',locals())
|
|
|
|
|
elif request.method == 'POST':
|
|
|
|
|
email = request.POST.get("email",None) # 邮箱
|
|
|
|
|
vcode = request.POST.get("vcode",None) # 验证码
|
|
|
|
|
new_pwd= request.POST.get('password',None) # 密码
|
|
|
|
|
new_pwd_confirm = request.POST.get('confirm_password')
|
|
|
|
|
# 查询验证码和邮箱是否匹配
|
|
|
|
|
try:
|
|
|
|
|
data = EmaiVerificationCode.objects.get(email_name=email,verification_code=vcode,verification_type='忘记密码')
|
|
|
|
|
expire_time = data.expire_time
|
|
|
|
|
print(expire_time)
|
|
|
|
|
if expire_time > datetime.datetime.now():
|
|
|
|
|
user = User.objects.get(email=email)
|
|
|
|
|
user.set_password(new_pwd)
|
|
|
|
|
user.save()
|
|
|
|
|
errormsg = "修改密码成功,请返回登录!"
|
|
|
|
|
return render(request, 'forget_pwd.html', locals())
|
|
|
|
|
else:
|
|
|
|
|
errormsg = "验证码已过期"
|
|
|
|
|
return render(request, 'forget_pwd.html', locals())
|
|
|
|
|
except Exception as e:
|
|
|
|
|
print(repr(e))
|
|
|
|
|
errormsg = "验证码错误"
|
|
|
|
|
return render(request,'forget_pwd.html',locals())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 发送电子邮箱验证码
|
|
|
|
|
def send_email_vcode(request):
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
email = request.POST.get('email',None)
|
|
|
|
|
is_email = User.objects.filter(email=email)
|
|
|
|
|
if is_email.count() != 0:
|
|
|
|
|
vcode_str = generate_vcode()
|
|
|
|
|
# 发送邮件
|
|
|
|
|
send_status = send_email(to_email=email, vcode_str=vcode_str)
|
|
|
|
|
if send_status:
|
|
|
|
|
# 生成过期时间
|
|
|
|
|
now_time = datetime.datetime.now()
|
|
|
|
|
expire_time = now_time + datetime.timedelta(minutes=30)
|
|
|
|
|
# 创建数据库记录
|
|
|
|
|
EmaiVerificationCode.objects.create(
|
|
|
|
|
email_name = email,
|
|
|
|
|
verification_type = '忘记密码',
|
|
|
|
|
verification_code = vcode_str,
|
|
|
|
|
expire_time = expire_time
|
|
|
|
|
)
|
|
|
|
|
return JsonResponse({'status':True,'data':'发送成功'})
|
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'发送验证码出错,请重试!'})
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'电子邮箱不存在!'})
|
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 管理员后台首页 - 用户管理
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_user(request):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
# user_list = User.objects.all()
|
|
|
|
|
return render(request, 'app_admin/admin_user.html', locals())
|
|
|
|
|
elif request.method == 'POST':
|
|
|
|
|
username = request.POST.get('username','')
|
|
|
|
|
if username == '':
|
|
|
|
|
user_data = User.objects.all().values_list(
|
|
|
|
|
'id','last_login','is_superuser','username','email','date_joined','is_active'
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
user_data = User.objects.filter(username__icontains=username).values_list(
|
|
|
|
|
'id','last_login','is_superuser','username','email','date_joined','is_active'
|
|
|
|
|
)
|
|
|
|
|
table_data = []
|
|
|
|
|
for i in list(user_data):
|
|
|
|
|
item = {
|
|
|
|
|
'id':i[0],
|
|
|
|
|
'last_login':i[1],
|
|
|
|
|
'is_superuser':i[2],
|
|
|
|
|
'username':i[3],
|
|
|
|
|
'email':i[4],
|
|
|
|
|
'date_joined':i[5],
|
|
|
|
|
'is_active':i[6]
|
|
|
|
|
}
|
|
|
|
|
table_data.append(item)
|
|
|
|
|
return JsonResponse({'status':True,'data':table_data})
|
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 管理员后台首页 - 创建用户
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_create_user(request):
|
|
|
|
|
if request.method == 'POST':
|
|
|
|
|
username = request.POST.get('username','') # 接收用户名参数
|
|
|
|
|
email = request.POST.get('email','') # 接收email参数
|
|
|
|
|
password = request.POST.get('password','') # 接收密码参数
|
|
|
|
|
if username != '' and password != '' and email != '' and '@' in email:
|
|
|
|
|
try:
|
|
|
|
|
user = User.objects.create_user(
|
|
|
|
|
username=username,
|
|
|
|
|
password=password,
|
|
|
|
|
email=email
|
|
|
|
|
)
|
|
|
|
|
user.save()
|
|
|
|
|
return JsonResponse({'status':True})
|
|
|
|
|
except Exception as e:
|
|
|
|
|
return JsonResponse({'status':False})
|
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False})
|
2019-07-25 22:17:34 +08:00
|
|
|
|
else:
|
|
|
|
|
return HttpResponse('方法不允许')
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 管理员后台 - 修改密码
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_change_pwd(request):
|
2019-07-25 17:37:10 +08:00
|
|
|
|
if request.method == 'POST':
|
2019-07-25 22:17:34 +08:00
|
|
|
|
try:
|
|
|
|
|
user_id = request.POST.get('user_id',None)
|
|
|
|
|
password = request.POST.get('password',None)
|
2019-07-31 21:31:39 +08:00
|
|
|
|
password2 = request.POST.get('password2',None)
|
2019-07-25 22:17:34 +08:00
|
|
|
|
if user_id and password:
|
2019-07-31 21:31:39 +08:00
|
|
|
|
if password == password2:
|
|
|
|
|
user = User.objects.get(id=int(user_id))
|
|
|
|
|
user.set_password(password)
|
|
|
|
|
user.save()
|
|
|
|
|
return JsonResponse({'status':True,'data':'修改成功'})
|
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'两个密码不一致'})
|
2019-07-25 22:17:34 +08:00
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'参数错误'})
|
|
|
|
|
except Exception as e:
|
2019-07-31 21:31:39 +08:00
|
|
|
|
print(repr(e))
|
2019-07-25 22:17:34 +08:00
|
|
|
|
return JsonResponse({'status':False,'data':'请求错误'})
|
2019-07-25 17:37:10 +08:00
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'方法错误'})
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
2019-07-25 22:17:34 +08:00
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 管理员后台 - 删除用户
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_del_user(request):
|
2019-07-25 17:37:10 +08:00
|
|
|
|
if request.method == 'POST':
|
2019-07-25 22:17:34 +08:00
|
|
|
|
try:
|
|
|
|
|
user_id = request.POST.get('user_id',None)
|
|
|
|
|
user = User.objects.get(id=int(user_id))
|
|
|
|
|
user.delete()
|
|
|
|
|
return JsonResponse({'status':True,'data':'删除成功'})
|
|
|
|
|
except Exception as e:
|
|
|
|
|
return JsonResponse({'status':False,'data':'删除出错'})
|
2019-07-25 17:37:10 +08:00
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'方法错误'})
|
2019-07-21 22:08:04 +08:00
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
|
|
|
|
# 管理员后台 - 文集管理
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_project(request):
|
|
|
|
|
if request.method == 'GET':
|
2019-11-03 20:36:34 +08:00
|
|
|
|
search_kw = request.GET.get('kw','')
|
|
|
|
|
if search_kw == '':
|
2019-07-25 15:25:27 +08:00
|
|
|
|
project_list = Project.objects.all()
|
|
|
|
|
paginator = Paginator(project_list,20)
|
|
|
|
|
page = request.GET.get('page',1)
|
|
|
|
|
try:
|
|
|
|
|
projects = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
projects = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
projects = paginator.page(paginator.num_pages)
|
|
|
|
|
else:
|
2019-11-03 20:36:34 +08:00
|
|
|
|
project_list = Project.objects.filter(intro__icontains=search_kw)
|
2019-07-25 15:25:27 +08:00
|
|
|
|
paginator = Paginator(project_list, 20)
|
|
|
|
|
page = request.GET.get('page', 1)
|
2019-11-03 20:36:34 +08:00
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
try:
|
|
|
|
|
projects = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
projects = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
projects = paginator.page(paginator.num_pages)
|
2019-11-03 20:36:34 +08:00
|
|
|
|
projects.kw = search_kw
|
2019-07-25 15:25:27 +08:00
|
|
|
|
return render(request,'app_admin/admin_project.html',locals())
|
2019-07-25 22:17:34 +08:00
|
|
|
|
else:
|
|
|
|
|
return HttpResponse('方法错误')
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
2020-01-01 21:24:29 +08:00
|
|
|
|
# 管理员后台 - 修改文集权限
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_project_role(request,pro_id):
|
|
|
|
|
pro = Project.objects.get(id=pro_id)
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
return render(request,'app_admin/admin_project_role.html',locals())
|
|
|
|
|
elif request.method == 'POST':
|
|
|
|
|
role_type = request.POST.get('role','')
|
|
|
|
|
if role_type != '':
|
|
|
|
|
if int(role_type) in [0,1]:# 公开或私密
|
|
|
|
|
Project.objects.filter(id=int(pro_id)).update(
|
|
|
|
|
role = role_type,
|
|
|
|
|
modify_time = datetime.datetime.now()
|
|
|
|
|
)
|
|
|
|
|
if int(role_type) == 2: # 指定用户可见
|
|
|
|
|
role_value = request.POST.get('tagsinput','')
|
|
|
|
|
Project.objects.filter(id=int(pro_id)).update(
|
|
|
|
|
role=role_type,
|
|
|
|
|
role_value = role_value,
|
|
|
|
|
modify_time = datetime.datetime.now()
|
|
|
|
|
)
|
|
|
|
|
if int(role_type) == 3: # 访问码可见
|
|
|
|
|
role_value = request.POST.get('viewcode','')
|
|
|
|
|
Project.objects.filter(id=int(pro_id)).update(
|
|
|
|
|
role=role_type,
|
|
|
|
|
role_value=role_value,
|
|
|
|
|
modify_time=datetime.datetime.now()
|
|
|
|
|
)
|
|
|
|
|
pro = Project.objects.get(id=int(pro_id))
|
|
|
|
|
return render(request, 'app_admin/admin_project_role.html', locals())
|
|
|
|
|
else:
|
|
|
|
|
return Http404
|
|
|
|
|
|
2019-07-25 15:25:27 +08:00
|
|
|
|
|
|
|
|
|
# 管理员后台 - 文档管理
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_doc(request):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
kw = request.GET.get('kw','')
|
|
|
|
|
if kw == '':
|
2019-12-15 20:54:16 +08:00
|
|
|
|
doc_list = Doc.objects.all().order_by('-modify_time')
|
2019-07-25 15:25:27 +08:00
|
|
|
|
paginator = Paginator(doc_list, 10)
|
|
|
|
|
page = request.GET.get('page', 1)
|
|
|
|
|
try:
|
|
|
|
|
docs = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
docs = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
docs = paginator.page(paginator.num_pages)
|
|
|
|
|
else:
|
2019-12-15 20:54:16 +08:00
|
|
|
|
doc_list = Doc.objects.filter(pre_content__icontains=kw).order_by('-modify_time')
|
2019-07-25 15:25:27 +08:00
|
|
|
|
paginator = Paginator(doc_list, 10)
|
|
|
|
|
page = request.GET.get('page', 1)
|
|
|
|
|
try:
|
|
|
|
|
docs = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
docs = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
docs = paginator.page(paginator.num_pages)
|
2019-11-03 20:36:34 +08:00
|
|
|
|
docs.kw = kw
|
2019-07-25 15:25:27 +08:00
|
|
|
|
return render(request,'app_admin/admin_doc.html',locals())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 管理员后台 - 文档模板管理
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_doctemp(request):
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
kw = request.GET.get('kw','')
|
|
|
|
|
if kw == '':
|
|
|
|
|
doctemp_list = DocTemp.objects.all()
|
|
|
|
|
paginator = Paginator(doctemp_list, 10)
|
|
|
|
|
page = request.GET.get('page', 1)
|
|
|
|
|
try:
|
|
|
|
|
doctemps = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
doctemps = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
doctemps = paginator.page(paginator.num_pages)
|
|
|
|
|
else:
|
|
|
|
|
doctemp_list = DocTemp.objects.filter(content__icontains=kw)
|
|
|
|
|
paginator = Paginator(doctemp_list, 10)
|
|
|
|
|
page = request.GET.get('page', 1)
|
|
|
|
|
try:
|
|
|
|
|
doctemps = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
doctemps = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
doctemps = paginator.page(paginator.num_pages)
|
2019-11-03 20:36:34 +08:00
|
|
|
|
doctemps.kw = kw
|
2019-07-25 15:25:27 +08:00
|
|
|
|
return render(request,'app_admin/admin_doctemp.html',locals())
|
|
|
|
|
|
|
|
|
|
|
2019-07-21 22:08:04 +08:00
|
|
|
|
# 普通用户修改密码
|
2019-07-25 17:37:10 +08:00
|
|
|
|
@login_required()
|
2019-07-21 22:08:04 +08:00
|
|
|
|
def change_pwd(request):
|
2019-07-25 17:37:10 +08:00
|
|
|
|
if request.method == 'POST':
|
2019-07-25 22:17:34 +08:00
|
|
|
|
try:
|
|
|
|
|
password = request.POST.get('password',None)
|
2019-07-31 21:31:39 +08:00
|
|
|
|
password2 = request.POST.get('password2',None)
|
|
|
|
|
print(password, password2)
|
|
|
|
|
if password and password== password2:
|
2019-07-25 22:17:34 +08:00
|
|
|
|
if len(password) >= 6:
|
|
|
|
|
user = User.objects.get(id=request.user.id)
|
|
|
|
|
user.set_password(password)
|
|
|
|
|
user.save()
|
|
|
|
|
return JsonResponse({'status':True,'data':'修改成功'})
|
|
|
|
|
else:
|
|
|
|
|
return JsonResponse({'status':False,'data':'密码不得少于6位数'})
|
2019-07-25 17:37:10 +08:00
|
|
|
|
else:
|
2019-07-31 21:31:39 +08:00
|
|
|
|
return JsonResponse({'status':False,'data':'两个密码不一致'})
|
2019-07-25 22:17:34 +08:00
|
|
|
|
except Exception as e:
|
|
|
|
|
return JsonResponse({'status':False,'data':'修改出错'})
|
|
|
|
|
else:
|
|
|
|
|
return HttpResponse('方法错误')
|
2019-12-01 20:44:16 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 管理员后台 - 应用设置
|
|
|
|
|
@superuser_only
|
|
|
|
|
def admin_setting(request):
|
|
|
|
|
email_settings = SysSetting.objects.filter(types="email")
|
|
|
|
|
if email_settings.count() == 6:
|
|
|
|
|
emailer = email_settings.get(name='send_emailer')
|
|
|
|
|
email_host = email_settings.get(name='smtp_host')
|
|
|
|
|
email_port = email_settings.get(name='smtp_port')
|
|
|
|
|
email_username = email_settings.get(name="username")
|
|
|
|
|
email_ssl = email_settings.get(name="smtp_ssl")
|
|
|
|
|
email_pwd = email_settings.get(name="pwd")
|
|
|
|
|
if request.method == 'GET':
|
|
|
|
|
return render(request,'app_admin/admin_setting.html',locals())
|
|
|
|
|
elif request.method == 'POST':
|
|
|
|
|
types = request.POST.get('type',None)
|
|
|
|
|
# 基础设置
|
|
|
|
|
if types == 'basic':
|
|
|
|
|
close_register = request.POST.get('close_register',None)
|
|
|
|
|
static_code = request.POST.get('static_code',None)
|
|
|
|
|
ad_code = request.POST.get('ad_code',None)
|
|
|
|
|
beian_code = request.POST.get('beian_code',None)
|
|
|
|
|
enbale_email = request.POST.get("enable_email",None)
|
|
|
|
|
# 更新开放注册状态
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='close_register',
|
|
|
|
|
defaults={'value':close_register,'types':'basic'}
|
|
|
|
|
)
|
|
|
|
|
# 更新统计代码状态
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name = 'static_code',
|
|
|
|
|
defaults={'value':static_code,'types':'basic'}
|
|
|
|
|
)
|
|
|
|
|
# 更新广告代码状态
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name = 'ad_code',
|
|
|
|
|
defaults={'value':ad_code,'types':'basic'}
|
|
|
|
|
)
|
|
|
|
|
# 更新备案号
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='beian_code',
|
|
|
|
|
defaults={'value':beian_code,'types':'basic'}
|
|
|
|
|
)
|
|
|
|
|
# 更新邮箱启用状态
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='enable_email',
|
|
|
|
|
defaults={'value': enbale_email, 'types': 'basic'}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return render(request,'app_admin/admin_setting.html',locals())
|
|
|
|
|
elif types == 'email':
|
|
|
|
|
# 读取上传的参数
|
|
|
|
|
emailer = request.POST.get("send_emailer",None)
|
|
|
|
|
host = request.POST.get("smtp_host",None)
|
|
|
|
|
port = request.POST.get("smtp_port",None)
|
|
|
|
|
username = request.POST.get("smtp_username",None)
|
|
|
|
|
pwd = request.POST.get("smtp_pwd",None)
|
|
|
|
|
ssl = request.POST.get("smtp_ssl",None)
|
|
|
|
|
# 对密码进行加密
|
|
|
|
|
pwd = enctry(pwd)
|
|
|
|
|
if emailer != None:
|
|
|
|
|
# 更新发件箱
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name = 'send_emailer',
|
|
|
|
|
defaults={"value":emailer,"types":'email'}
|
|
|
|
|
)
|
|
|
|
|
if host != None:
|
|
|
|
|
# 更新邮箱主机
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='smtp_host',
|
|
|
|
|
defaults={"value": host, "types": 'email'}
|
|
|
|
|
)
|
|
|
|
|
if port != None:
|
|
|
|
|
# 更新邮箱主机端口
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='smtp_port',
|
|
|
|
|
defaults={"value": port, "types": 'email'}
|
|
|
|
|
)
|
|
|
|
|
if username != None:
|
|
|
|
|
# 更新用户名
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='username',
|
|
|
|
|
defaults={"value": username, "types": 'email'}
|
|
|
|
|
)
|
|
|
|
|
if pwd != None:
|
|
|
|
|
# 更新密码
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='pwd',
|
|
|
|
|
defaults={"value": pwd, "types": 'email'}
|
|
|
|
|
)
|
|
|
|
|
if ssl != None:
|
|
|
|
|
# 更新SSL
|
|
|
|
|
SysSetting.objects.update_or_create(
|
|
|
|
|
name='smtp_ssl',
|
|
|
|
|
defaults={"value": ssl, "types": 'email'}
|
|
|
|
|
)
|
|
|
|
|
email_settings = SysSetting.objects.filter(types="email")
|
|
|
|
|
if email_settings.count() == 6:
|
|
|
|
|
emailer = email_settings.get(name='send_emailer')
|
|
|
|
|
email_host = email_settings.get(name='smtp_host')
|
|
|
|
|
email_port = email_settings.get(name='smtp_port')
|
|
|
|
|
email_username = email_settings.get(name="username")
|
|
|
|
|
email_ssl = email_settings.get(name="smtp_ssl")
|
|
|
|
|
email_pwd = email_settings.get(name="pwd")
|
|
|
|
|
return render(request, 'app_admin/admin_setting.html',locals())
|