@@ -2,6 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from __future__ import division |
4 | 4 |
|
5 |
+from django.conf import settings |
|
6 |
+from django.contrib.auth.hashers import check_password, make_password |
|
5 | 7 |
from django_response import response |
6 | 8 |
from paginator import pagination |
7 | 9 |
|
@@ -14,7 +16,17 @@ def add_branch_campus_admin(request): |
||
14 | 16 |
name = request.POST.get('name', '') |
15 | 17 |
phone = request.POST.get('phone', '') |
16 | 18 |
|
17 |
- admin = BranchCampusAdministratorInfo.objects.create(campus_id=campus_id, campus_name=campus_name, name=name, phone=phone) |
|
19 |
+ password = phone[-6:] |
|
20 |
+ encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER) |
|
21 |
+ |
|
22 |
+ admin = BranchCampusAdministratorInfo.objects.create( |
|
23 |
+ campus_id=campus_id, |
|
24 |
+ campus_name=campus_name, |
|
25 |
+ name=name, |
|
26 |
+ phone=phone, |
|
27 |
+ password=password, |
|
28 |
+ encryption=encryption, |
|
29 |
+ ) |
|
18 | 30 |
|
19 | 31 |
return response(data={ |
20 | 32 |
'admin': admin.admin_id, |
@@ -27,7 +39,18 @@ def update_branch_campus_admin(request): |
||
27 | 39 |
phone = request.POST.get('phone', '') |
28 | 40 |
user_status = request.POST.get('user_status', 0) |
29 | 41 |
|
30 |
- BranchCampusAdministratorInfo.objects.filter(admin_id=admin_id).update(name=name, phone=phone, user_status=user_status) |
|
42 |
+ password = phone[-6:] |
|
43 |
+ encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER) |
|
44 |
+ |
|
45 |
+ BranchCampusAdministratorInfo.objects.filter( |
|
46 |
+ admin_id=admin_id, |
|
47 |
+ ).update( |
|
48 |
+ name=name, |
|
49 |
+ phone=phone, |
|
50 |
+ password=password, |
|
51 |
+ encryption=encryption, |
|
52 |
+ user_status=user_status, |
|
53 |
+ ) |
|
31 | 54 |
|
32 | 55 |
return response() |
33 | 56 |
|
@@ -54,3 +77,25 @@ def delete_branch_campus_admin(request): |
||
54 | 77 |
BranchCampusAdministratorInfo.objects.filter(admin_id=admin_id).update(statue=False) |
55 | 78 |
|
56 | 79 |
return response() |
80 |
+ |
|
81 |
+ |
|
82 |
+def login_branch_campus_admin(request): |
|
83 |
+ phone = request.POST.get('phone', '') |
|
84 |
+ password = request.POST.get('password', '') |
|
85 |
+ |
|
86 |
+ try: |
|
87 |
+ admin = BranchCampusAdministratorInfo.objects.get(phone=phone) |
|
88 |
+ except BranchCampusAdministratorInfo.DoesNotExist: |
|
89 |
+ return response() |
|
90 |
+ |
|
91 |
+ # 密码不匹配 |
|
92 |
+ if not check_password(password, admin.encryption): |
|
93 |
+ return response() |
|
94 |
+ |
|
95 |
+ # 未激活 |
|
96 |
+ if admin.user_status != BranchCampusAdministratorInfo.ACTIVATED: |
|
97 |
+ return response() |
|
98 |
+ |
|
99 |
+ return response(data={ |
|
100 |
+ 'data': admin.data, |
|
101 |
+ }) |
@@ -27,6 +27,7 @@ urlpatterns += [ |
||
27 | 27 |
url(r'^branch/campus/admin/update$', branch_campus_admin_views.update_branch_campus_admin, name='update_branch_campus_admin'), |
28 | 28 |
url(r'^branch/campus/admin/list$', branch_campus_admin_views.get_branch_campus_admin_list, name='get_branch_campus_admin_list'), |
29 | 29 |
url(r'^branch/campus/admin/delete$', branch_campus_admin_views.delete_branch_campus_admin, name='delete_branch_campus_admin'), |
30 |
+ url(r'^branch/campus/admin/login$', branch_campus_admin_views.login_branch_campus_admin, name='login_branch_campus_admin'), |
|
30 | 31 |
] |
31 | 32 |
|
32 | 33 |
urlpatterns += [ |
@@ -1,6 +1,8 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 |
+from django.conf import settings |
|
3 | 4 |
from django.contrib import admin |
5 |
+from django.contrib.auth.hashers import make_password |
|
4 | 6 |
|
5 | 7 |
from api.wx_views import get_course_field_limit_scene_qrcode_url |
6 | 8 |
from registration.models import (BranchCampusAdministratorInfo, BranchCampusInfo, CourseInfo, CourseRegisterFieldInfo, |
@@ -12,7 +14,12 @@ class BranchCampusInfoAdmin(admin.ModelAdmin): |
||
12 | 14 |
|
13 | 15 |
|
14 | 16 |
class BranchCampusAdministratorInfoAdmin(admin.ModelAdmin): |
15 |
- list_display = ('admin_id', 'campus_id', 'campus_name', 'name', 'phone', 'user_status', 'updated_at', 'created_at') |
|
17 |
+ list_display = ('admin_id', 'campus_id', 'campus_name', 'name', 'phone', 'password', 'encryption', 'user_status', 'updated_at', 'created_at') |
|
18 |
+ |
|
19 |
+ def save_model(self, request, obj, form, change): |
|
20 |
+ password = obj.password or obj.phone[-6:] |
|
21 |
+ obj.encryption = make_password(password, settings.MAKE_PASSWORD_SALT, settings.MAKE_PASSWORD_HASHER) |
|
22 |
+ obj.save() |
|
16 | 23 |
|
17 | 24 |
|
18 | 25 |
class CourseInfoAdmin(admin.ModelAdmin): |
@@ -0,0 +1,23 @@ |
||
1 |
+# Generated by Django 2.2.17 on 2021-02-23 08:07 |
|
2 |
+ |
|
3 |
+from django.db import migrations, models |
|
4 |
+ |
|
5 |
+ |
|
6 |
+class Migration(migrations.Migration): |
|
7 |
+ |
|
8 |
+ dependencies = [ |
|
9 |
+ ('registration', '0003_courseregisterinfo_user_id'), |
|
10 |
+ ] |
|
11 |
+ |
|
12 |
+ operations = [ |
|
13 |
+ migrations.AddField( |
|
14 |
+ model_name='branchcampusadministratorinfo', |
|
15 |
+ name='encryption', |
|
16 |
+ field=models.CharField(blank=True, help_text='管理员密码', max_length=255, null=True, verbose_name='encryption'), |
|
17 |
+ ), |
|
18 |
+ migrations.AddField( |
|
19 |
+ model_name='branchcampusadministratorinfo', |
|
20 |
+ name='password', |
|
21 |
+ field=models.CharField(blank=True, help_text='管理员密码', max_length=255, null=True, verbose_name='password'), |
|
22 |
+ ), |
|
23 |
+ ] |
@@ -46,6 +46,8 @@ class BranchCampusAdministratorInfo(BaseModelMixin): |
||
46 | 46 |
|
47 | 47 |
name = models.CharField(_('name'), max_length=255, blank=True, null=True, help_text='管理员姓名') |
48 | 48 |
phone = models.CharField(_('phone'), max_length=11, blank=True, null=True, help_text='管理员电话', db_index=True) |
49 |
+ password = models.CharField(_(u'password'), max_length=255, blank=True, null=True, help_text=u'管理员密码') |
|
50 |
+ encryption = models.CharField(_(u'encryption'), max_length=255, blank=True, null=True, help_text=u'管理员密码') |
|
49 | 51 |
|
50 | 52 |
user_status = models.IntegerField(_('user_status'), choices=USER_STATUS_TUPLE, default=PENDING, help_text='管理员状态', db_index=True) |
51 | 53 |
|