浏览代码

个人中心

zhujf21st 3 年之前
父节点
当前提交
5712ffc965
共有 2 个文件被更改,包括 42 次插入3 次删除
  1. 4 0
      app/models/User.py
  2. 38 3
      app/routes/user.py

+ 4 - 0
app/models/User.py

@@ -26,6 +26,8 @@ class User(db.Model, UserMixin):
     AGE = db.Column(db.Integer)
     PHOTO = db.Column(db.String(200))
     EMPLOYDATE = db.Column(db.DATETIME, default=datetime.now)
+    EMAIL = db.Column(db.String(50))
+    PHONENUMBER = db.Column(db.String(11))
 
     organizations = db.relationship('Organization',
                                     secondary=user_organization_table,
@@ -67,6 +69,8 @@ class User(db.Model, UserMixin):
             'age': self.AGE,
             "status": "0",
             'photo': self.PHOTO,
+            'email': self.EMAIL,
+            'phonenumber': self.PHONENUMBER
             #'employdate': self.EMPLOYDATE.strftime('%Y-%m-%d %H:%M:%S'),
         }
 

+ 38 - 3
app/routes/user.py

@@ -158,6 +158,8 @@ def syuser_update():
     user.UPDATEDATETIME = datetime.now()
     if 'nickName' in request.json: user.NAME = request.json['nickName'] 
     if 'sex' in request.json: user.SEX = request.json['sex']
+    if 'email' in request.json: user.EMAIL = request.json['email']
+    if 'phonenumber' in request.json: user.PHONENUMBER = request.json['phonenumber']
     if 'deptId' in request.json: user.organizations = Organization.query.filter(Organization.ID == request.json['deptId']).all()
     if 'roleIds' in request.json:
         user.roles = [Role.query.get(roleId) for roleId in request.json['roleIds']]
@@ -182,6 +184,8 @@ def syuser_save():
     with db.session.no_autoflush:
         if 'nickName' in request.json: user.NAME = request.json['nickName'] 
         if 'sex' in request.json: user.SEX = request.json['sex']
+        if 'email' in request.json: user.EMAIL = request.json['email']
+        if 'phonenumber' in request.json: user.PHONENUMBER = request.json['phonenumber']
         if 'deptId' in request.json: user.organizations = Organization.query.filter(Organization.ID == request.json['deptId']).all()
         if 'roleIds' in request.json:
             user.roles = [Role.query.get(roleId) for roleId in request.json['roleIds']]
@@ -203,16 +207,23 @@ def syuser_delete(id):
 
     return jsonify({'code': 200, 'msg': '删除成功'})
 
-@base.route('/base/syuser!doNotNeedSecurity_updateCurrentPwd.action', methods=['POST']) 
+@base.route('/system/user/profile/updatePwd', methods=['PUT']) 
 def syuser_update_pwd():
     user = User.query.get(current_user.ID)
 
     if user:
         md = hashlib.md5()
-        md.update(request.form.get('data.pwd').encode('utf-8'))
+        #提交的密码MD5加密
+        md.update(request.args.get('oldPassword').encode('utf-8'))
+        #MD5加密后的内容同数据库密码比较
+        if md.hexdigest() != user.PWD:
+            return jsonify({'code': 400, 'msg': '旧密码错误'})
+
+        md = hashlib.md5()
+        md.update(request.args.get('newPassword').encode('utf-8'))
         user.PWD = md.hexdigest()
         db.session.add(user)
-    return jsonify({'success': True})
+    return jsonify({'code': 200, 'msg': '修改成功'})
 
 @base.route('/getInfo', methods=['GET'])
 @login_required
@@ -236,6 +247,30 @@ def syuser_info():
         'user': {'userName': current_user.LOGINNAME, 'avatar': '', 'nickName': current_user.NAME, 'userId': current_user.ID}, \
         'roles': [role.NAME for role in current_user.roles], 'permissions': resourceTree})
 
+@base.route('/system/user/profile', methods=['GET'])
+@login_required
+def syuser_profile():
+     return jsonify({'msg': '操作成功', 'code': 200, \
+        'data': current_user.to_json(), \
+        'postGroup': current_user.organizations[0].NAME if len(current_user.organizations) > 0 else '', \
+        'roleGroup': [role.NAME for role in current_user.roles]})
+
+@base.route('/system/user/profile', methods=['PUT'])
+@login_required
+def syuser_update_profile():
+    id = request.json['userId']
+    userName = request.json['userName']
+    user = User.query.get(id)
+
+    user.UPDATEDATETIME = datetime.now()
+    if 'nickName' in request.json: user.NAME = request.json['nickName'] 
+    if 'sex' in request.json: user.SEX = request.json['sex']
+    if 'email' in request.json: user.EMAIL = request.json['email']
+    if 'phonenumber' in request.json: user.PHONENUMBER = request.json['phonenumber']
+
+    db.session.add(user)
+
+    return jsonify({'code': 200, 'msg': '更新成功!'})
 
 @base.route('/system/user/authRole/<id>', methods=['GET'])
 def syuser_auth_role(id):