wushaodong преди 4 години
родител
ревизия
159b5708cb
променени са 5 файла, в които са добавени 115 реда и са изтрити 83 реда
  1. 1 0
      apps/account/models.py
  2. 1 0
      apps/account/urls.py
  3. 18 1
      apps/account/views.py
  4. 0 2
      uis/views/account/login.html
  5. 95 80
      uis/views/account/user_password.html

+ 1 - 0
apps/account/models.py

@@ -121,6 +121,7 @@ class User(AbstractBaseUser, PermissionsMixin):
         if not self.check_password(old_password):
             raise CustomError(u'原密码输入错误,请检查')
         self.set_password(new_password)
+        self.save()
 
     def update_item(self, validated_data):
         def update():

+ 1 - 0
apps/account/urls.py

@@ -5,6 +5,7 @@ from apps.account.views import *
 urlpatterns = [
     url(r'^login/$', LoginView.as_view()),
     url(r'^token_refresh/$', RefreshTokenView.as_view()),
+    url(r'^employee/change_password/$', ChangePassword.as_view()),
 
     url(r'^permission/dict/$', PermissionDictView.as_view()), # 人员管理,编辑,权限组
     url(r'^permission/all/$', PermissionsListView.as_view()), # 权限管理,编辑,加载所有权限

+ 18 - 1
apps/account/views.py

@@ -23,7 +23,6 @@ from collections import OrderedDict
 from apps.agent.models import Store, Agent,GeneralAgent
 from utils.exceptions import CustomError
 
-
 class LoginView(ObtainJSONWebToken):
     serializer_class = JWTSerializer
 
@@ -47,6 +46,24 @@ class RefreshTokenView(RefreshJSONWebToken):
         except ValidationError as e:
             return response_error(u'登录状态失效,请重新登录')
 
+class ChangePassword(APIView):
+    def post(self, request, *args, **kwargs):
+        id = request.GET.get('id')
+        data = json.loads(request.body)
+        try:
+            with transaction.atomic():
+                user = User.objects.filter(id=id).first()
+                if not user:
+                    raise CustomError(u'用户信息错误,请刷新重试!')
+                user.change_password(data['new_password'], data['confirm_password'], data['old_password'])
+                BizLog.objects.addnew(request.user, BizLog.UPDATE, u"修改密码[%s],id=%d" % (user.username, user.id))
+        except CustomError as e:
+            return response_error(str(e))
+        except Exception as e:
+            traceback.print_exc()
+            return response_error(u'保存失败!')
+        return response_ok()
+
 
 class EmployeeViewSet(CustomModelViewSet):
     permission_classes = [isLogin, ]

+ 0 - 2
uis/views/account/login.html

@@ -117,8 +117,6 @@
         ,data: obj.field
         ,type: 'post'
         ,done: function(res){
-            console.log(res.data, "oppppppp")
-
           //请求成功后,写入 access_token
           layui.data(setter.tableName, {
             key: setter.request.tokenName

+ 95 - 80
uis/views/account/user_password.html

@@ -1,100 +1,115 @@
 <!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">
+    <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-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" id="password_form">
-              <div class="layui-row layui-col-space10 layui-form-item">
+            <div class="layui-row layui-col-space15">
+                <div class="layui-col-md12">
+                    <form class="layui-form" action="" lay-filter="component-form-element" id="password_form">
+                        <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="new_password" placeholder="" autocomplete="off" class="layui-input" lay-verify="required">
-                  </div>
+                            <div class="layui-col-lg12">
+                                <label class="layui-form-label">旧密码:</label>
+                                <div class="layui-input-block">
+                                    <input type="password" name="old_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="password" 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="password" 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"
+                                            id="button_save" style="display: none">保存
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                    </form>
                 </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" id="button_save" style="display: none">保存</button>
-                </div>
-              </div>
-              </div>
-            </form>
-          </div>
+            </div>
         </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');
-    // 在人员管理修改密码人员id
-    var id = layui.view.getParameterByName('id');
-    // 在index上修改自己密码人员id
-    if (!id){
-        $('#button_save').css('display','block');
-        id = layui.data(layui.setter.tableName)['USER-ID'];
-    }
-    form.on('submit(component-form-element)', function(data){
-      admin.req({
-        url: '/account/employee/change_password/?id='+id
-        ,data: JSON.stringify(data.field)
-        ,type: 'post'
-        ,done: function(res){
-            // 清空form
-            $('#password_form')[0].reset();
-            layui.form.render();
-            layer.open({
-                 type: 1
-                ,content: '<div style="padding: 20px 100px;">保存成功</div>'
-                ,btn: '关闭'
-                ,btnAlign: 'c' //按钮居中
-                ,shade: 0 //不显示遮罩
-                ,yes: function(){
-                  layer.closeAll();
-                  parent.layer.closeAll('iframe');
+<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');
+        // 在人员管理修改密码人员id
+        var id = layui.view.getParameterByName('id');
+        // 在index上修改自己密码人员id
+        if (!id) {
+            $('#button_save').css('display', 'block');
+            id = layui.data(layui.setter.tableName)['USER-ID'];
+        }
+        form.on('submit(component-form-element)', function (data) {
+            admin.req({
+                url: '/account/employee/change_password/?id=' + id
+                , data: JSON.stringify(data.field)
+                , type: 'post'
+                , done: function (res) {
+                    // 清空form
+                    $('#password_form')[0].reset();
+                    layui.form.render();
+                    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(function () {
+                                location.href = '/views/account/login.html';
+                            });
+                        }
+                    });
                 }
             });
-        }
-      });
 
-      return false;
-    });
+            return false;
+        });
 
-    $('#btn_close').on('click', function() {
-        parent.layer.closeAll('iframe');
+        $('#btn_close').on('click', function () {
+            parent.layer.closeAll('iframe');
+        });
     });
-  });
-  </script>
+</script>
 </body>
-</html>
+</html>