jiaweiqi 3 rokov pred
rodič
commit
133527eff6

+ 1 - 1
apps/api/admin/user/urls.py

@@ -6,7 +6,7 @@ from rest_framework.routers import SimpleRouter
 from .views import *
 
 urlpatterns = [
-
+    url(r'^change_password/$', ChangePasswordView.as_view()),
 ]
 
 router = SimpleRouter()

+ 20 - 0
apps/api/admin/user/views.py

@@ -1,11 +1,14 @@
 # coding=utf-8
 
+import json
+
 from django.db import transaction
 from django.contrib.auth import get_user_model
 from utils.permission import IsAdministrator
 from utils import response_error, response_ok
 from utils.custom_modelviewset import CustomModelViewSet
 from utils.exceptions import CustomError
+from rest_framework.views import APIView
 from apps.staff.serializers import UserSerializer
 from apps.staff.filters import UserFilter
 from apps.system.models import SysLog
@@ -31,3 +34,20 @@ class UserViewSet(CustomModelViewSet):
         instance = serializer.instance
         validated_data = serializer.validated_data
         SysLog.objects.addnew(self.request.user, SysLog.UPDATE, u'修改账户[%s],id=%d' % (instance.username, instance.id), validated_data)
+
+
+class ChangePasswordView(APIView):
+    permission_classes = [IsAdministrator, ]
+
+    def post(self, request):
+        data = json.loads(request.body)
+
+        new_password = data['new_password'].strip(' ')
+        confirm_password = data['confirm_password'].strip(u' ')
+        old_password = data['old_password'].strip(u' ')
+
+        with transaction.atomic():
+            request.user.change_password(new_password, confirm_password, old_password)
+            request.user.save()
+            SysLog.objects.addnew(self.request.user, SysLog.UPDATE, u'修改账户密码')
+        return response_ok()

+ 1 - 1
uis/admin/index.html

@@ -38,7 +38,7 @@
               <cite id="id_username"></cite>
             </a>
             <dl class="layui-nav-child">
-              <dd><a lay-href="account/user_password.html">修改密码</a></dd>
+              <dd><a lay-href="login/user_password.html">修改密码</a></dd>
               <hr>
               <dd layadmin-event="logout" style="text-align: center;"><a>退出</a></dd>
             </dl>

+ 94 - 0
uis/admin/login/user_password.html

@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>修改密码</title>
+  <meta name="renderer" content="webkit">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+  <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
+  <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
+</head>
+<body>
+
+  <div class="layui-fluid">
+    <div class="layui-card">
+        <div class="layui-card-body" pad15>
+        <div class="layui-row layui-col-space15">
+          <div class="layui-col-md12">
+            <form class="layui-form" action="" lay-filter="component-form-element">
+              <div class="layui-row layui-col-space10 layui-form-item">
+                <div class="layui-col-lg12">
+                  <label class="layui-form-label">原密码:</label>
+                  <div class="layui-input-block">
+                    <input type="text" name="old_password" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
+                  </div>
+                </div>
+                <div class="layui-col-lg12">
+                  <label class="layui-form-label">新密码:</label>
+                  <div class="layui-input-block">
+                    <input type="text" name="new_password" placeholder="" autocomplete="off" class="layui-input" lay-verify="required">
+                  </div>
+                </div>
+                 <div class="layui-col-lg12">
+                  <label class="layui-form-label">密码确认:</label>
+                  <div class="layui-input-block">
+                    <input type="text" name="confirm_password" placeholder="" autocomplete="off" class="layui-input" lay-verify="required">
+                  </div>
+                </div>
+              <div class="layui-form-item">
+                <div class="layui-input-block">
+                  <button class="layui-btn" lay-submit lay-filter="component-form-element">保存</button>
+                </div>
+              </div>
+              </div>
+            </form>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+
+  <script src="../../layuiadmin/layui/layui.js"></script>
+  <script>
+  layui.config({
+    base: '../../../layuiadmin/' //静态资源所在路径
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'form'], function(){
+    var $ = layui.$
+    ,admin = layui.admin
+    ,element = layui.element
+    ,form = layui.form;
+    form.render(null, 'component-form-element');
+    element.render('breadcrumb', 'breadcrumb');
+
+    form.on('submit(component-form-element)', function(data){
+      admin.req({
+        url: '/admin/user/change_password/'
+        ,data: JSON.stringify(data.field)
+        ,type: 'post'
+        ,done: function(res){
+            layer.open({
+                 type: 1
+                ,content: '<div style="padding: 20px 100px;">保存成功</div>'
+                ,btn: '关闭'
+                ,btnAlign: 'c' //按钮居中
+                ,shade: 0 //不显示遮罩
+                ,yes: function(){
+                  layer.closeAll();
+                  parent.layer.closeAll('iframe');
+                  admin.exit();
+                }
+            });
+        }
+      });
+
+      return false;
+    });
+
+  });
+  </script>
+</body>
+</html>