|
# -*- coding: utf-8 -*-
from __future__ import division
from django.conf import settings
from django.contrib.auth.hashers import check_password, make_password
from django_response import response
from paginator import pagination
from registration.models import BranchCampusAdministratorInfo, CourseRegisterInfo, UserCourseRegisterInfo
def add_branch_campus_admin(request):
campus_id = request.POST.get('campus_id', '')
campus_name = request.POST.get('campus_name', '')
name = request.POST.get('name', '')
phone = request.POST.get('phone', '')
password = phone[-6:]
encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
admin = BranchCampusAdministratorInfo.objects.create(
campus_id=campus_id,
campus_name=campus_name,
name=name,
phone=phone,
password=password,
encryption=encryption,
)
return response(data={
'admin': admin.admin_id,
})
def update_branch_campus_admin(request):
admin_id = request.POST.get('admin_id', '')
target_admin_id = request.POST.get('target_admin_id', '')
name = request.POST.get('name', '')
phone = request.POST.get('phone', '')
admin_type = int(request.POST.get('admin_type', 1))
user_status = request.POST.get('user_status', 0)
password = phone[-6:]
encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
BranchCampusAdministratorInfo.objects.filter(
admin_id=target_admin_id,
).update(
admin_type=admin_type,
name=name,
phone=phone,
password=password,
encryption=encryption,
user_status=user_status,
)
CourseRegisterInfo.objects.filter(admin_id=target_admin_id).update(admin_name=name)
UserCourseRegisterInfo.objects.filter(admin_id=target_admin_id).update(admin_name=name)
return response()
def get_branch_campus_admin_list(request):
campus_id = request.POST.get('campus_id', '')
page = request.POST.get('page', 1)
num = request.POST.get('num', 20)
admins = BranchCampusAdministratorInfo.objects.filter(status=True)
if campus_id:
admins = admins.filter(campus_id=campus_id)
count = admins.count()
admins, left = pagination(admins, page, num)
admins = [a.data for a in admins]
return response(data={
'logs': admins,
'count': count,
'left': left,
})
def delete_branch_campus_admin(request):
admin_id = request.POST.get('admin_id', '')
target_admin_id = request.POST.get('target_admin_id', '')
BranchCampusAdministratorInfo.objects.filter(admin_id=target_admin_id).update(statue=False)
return response()
def apply_branch_campus_admin(request):
user_id = request.POST.get('user_id', '')
campus_id = request.POST.get('campus_id', '')
campus_name = request.POST.get('campus_name', '')
name = request.POST.get('name', '')
phone = request.POST.get('phone', '')
password = phone[-6:]
encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
admin = BranchCampusAdministratorInfo.objects.create(
user_id=user_id,
campus_id=campus_id,
campus_name=campus_name,
name=name,
phone=phone,
password=password,
encryption=encryption,
)
return response(data={
'admin': admin.admin_id,
})
def login_branch_campus_admin(request):
phone = request.POST.get('phone', '')
password = request.POST.get('password', '')
try:
admin = BranchCampusAdministratorInfo.objects.get(phone=phone)
except BranchCampusAdministratorInfo.DoesNotExist:
return response()
# 密码不匹配
if not check_password(password, admin.encryption):
return response()
# 未激活
if admin.user_status != BranchCampusAdministratorInfo.ACTIVATED:
return response()
return response(data={
'data': admin.data,
})
def change_password_branch_campus_admin(request):
admin_id = request.POST.get('admin_id', '')
old_password = request.POST.get('old_password', '')
new_password = request.POST.get('new_password', '')
try:
admin = BranchCampusAdministratorInfo.objects.get(admin_id=admin_id)
except BranchCampusAdministratorInfo.DoesNotExist:
return response()
# 密码不匹配
if not check_password(old_password, admin.encryption):
return response(40001, 'Password mismatch', '密码不匹配')
encryption = make_password(new_password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER)
BranchCampusAdministratorInfo.objects.filter(
admin_id=admin_id,
).update(
password=new_password,
encryption=encryption,
)
return response()
|