更新layui,新增个人信息修改

This commit is contained in:
mkg
2021-04-01 23:51:41 +08:00
parent 3e98b4e656
commit b9301046da
426 changed files with 164950 additions and 82432 deletions
+6 -4
View File
@@ -8,13 +8,14 @@ class User(db.Model, UserMixin):
__tablename__ = 'admin_user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='用户ID')
username = db.Column(db.String(20), comment='用户名')
realname =db.Column(db.String(20), comment='真实名字')
realname = db.Column(db.String(20), comment='真实名字')
avatar = db.Column(db.String(255), comment='头像', default="/static/admin/admin/images/avatar.jpg")
remark = db.Column(db.String(255), comment='备注')
password_hash = db.Column(db.String(128), comment='哈希密码')
enable = db.Column(db.Integer, default=0, comment='启用')
create_at = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
update_at = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='创建时间')
role = db.relationship('Role',secondary="admin_user_role", backref=db.backref('user'),lazy = 'dynamic')
# power = db.relationship('Power',secondary="admin_user_role", backref=db.backref('user'))
role = db.relationship('Role', secondary="admin_user_role", backref=db.backref('user'), lazy='dynamic')
def set_password(self, password):
self.password_hash = generate_password_hash(password)
@@ -43,7 +44,8 @@ class Role(db.Model):
sort = db.Column(db.Integer, comment='排序')
create_time = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间')
update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间')
power = db.relationship('Power',secondary="admin_role_power", backref=db.backref('role'))
power = db.relationship('Power', secondary="admin_role_power", backref=db.backref('role'))
# 创建中间表
role_power = db.Table(
+4 -2
View File
@@ -6,6 +6,7 @@ from sqlalchemy import desc
from applications.models import db
from applications.models.admin import Photo
from applications.service.upload import photos
ma = Marshmallow()
@@ -27,7 +28,7 @@ def get_photo(page, limit):
return output, count
def upload_one(photo,mime):
def upload_one(photo, mime):
filename = photos.save(photo)
file_url = photos.url(filename)
@@ -36,7 +37,8 @@ def upload_one(photo,mime):
photo = Photo(name=filename, href=file_url, mime=mime, size=size)
db.session.add(photo)
db.session.commit()
return upload_url
return file_url
def delete_photo_by_id(id):
photo_name = Photo.query.filter_by(id=id).first().name
+45 -20
View File
@@ -2,11 +2,11 @@ from flask import jsonify
from flask_login import current_user
from flask_marshmallow import Marshmallow
from marshmallow import fields
from sqlalchemy import and_
from sqlalchemy import and_, desc
from sqlalchemy.sql import exists
from applications.models import db
from applications.models.admin import User, Role
from applications.models.admin import User, Role, AdminLog
from sqlalchemy.orm.dynamic import AppenderQuery
ma = Marshmallow()
@@ -22,12 +22,7 @@ class UserSchema(ma.Schema):
update_at = fields.DateTime()
'''
获取用户的sqlalchemy对象
分页器
'''
# 获取用户的sqlalchemy对象分页器
def get_user_data(page, limit, filters):
user = User.query.filter(and_(*[getattr(User, k).like(v) for k, v in filters.items()])).paginate(page=page,
per_page=limit,
@@ -36,12 +31,7 @@ def get_user_data(page, limit, filters):
return user, count
'''
获取用户的dict数据
分页器
'''
# 获取用户的dict数据分页器
def get_user_data_dict(page, limit, filters):
user, count = get_user_data(page, limit, filters)
user_schema = UserSchema(many=True) # 用已继承ma.ModelSchema类的自定制类生成序列化类
@@ -49,15 +39,18 @@ def get_user_data_dict(page, limit, filters):
return output, count
'''
通过名称获取用户
'''
# 通过名称获取用户
def get_user_by_name(username):
return User.query.filter_by(username=username).first()
# 获取当前用户日志
def get_current_user_logs():
log = AdminLog.query.filter_by(url='/admin/login').filter_by(uid=current_user.id).order_by(
desc(AdminLog.create_time)).limit(10)
return log
# 判断用户是否存在
def is_user_exists(username):
res = User.query.filter_by(username=username).count()
@@ -82,6 +75,13 @@ def add_user_role(id, roles_list):
db.session.commit()
# 更新用户头像
def update_avatar(url):
r = User.query.filter_by(id=current_user.id).update({"avatar": url})
db.session.commit()
return r
# 更新用户信息
def update_user(id, username, realname):
user = User.query.filter_by(id=id).update({'username': username, 'realname': realname})
@@ -89,6 +89,31 @@ def update_user(id, username, realname):
return user
# 更新当前用户信息
def update_current_user_info(req_json):
r = User.query.filter_by(id=current_user.id).update(
{"realname": req_json.get("realName"), "remark": req_json.get("details")})
db.session.commit()
return r
# 修改当前用户密码
def edit_password(res_json):
if res_json.get("newPassword") == '':
return jsonify(success=False, msg="新密码不得为空")
if res_json.get("newPassword") != res_json.get("confirmPassword"):
return jsonify(success=False, msg="俩次密码不一样")
user = current_user
is_right = user.validate_password(res_json.get("oldPassword"))
if not is_right:
return jsonify(success=False, msg="旧密码错误")
user.set_password(res_json.get("newPassword"))
db.session.add(user)
db.session.commit()
return jsonify(success=True, msg="更改成功")
# 删除用户
def delete_by_id(id):
user = User.query.filter_by(id=id).first()
roles_id = []
@@ -102,7 +127,7 @@ def delete_by_id(id):
return res
# 启用户
# 启用户
def enable_status(id):
enable = 1
user = User.query.filter_by(id=id).update({"enable": enable})
+1
View File
@@ -45,6 +45,7 @@ def upload():
res = {
"msg": "上传成功",
"code": 0,
"success":True,
"data":
{"src": file_url}
}
+2 -2
View File
@@ -11,8 +11,8 @@ admin_index = Blueprint('adminIndex', __name__, url_prefix='/admin')
@admin_index.route('/')
@login_required
def index():
realname = current_user.realname
return render_template('admin/index.html', realname=realname)
user = current_user
return render_template('admin/index.html', user=user)
# 获取验证码
+55 -3
View File
@@ -1,8 +1,9 @@
from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required
from flask_login import login_required, current_user
from applications.models.admin import User, Role
from applications.service.admin.user import get_user_data_dict, add_user, delete_by_id, \
batch_remove, update_user, update_user_role, is_user_exists, add_user_role, enable_status, disable_status
batch_remove, update_user, update_user_role, is_user_exists, add_user_role, enable_status, disable_status, \
edit_password, get_current_user_logs, update_current_user_info, update_avatar
from applications.service.route_auth import authorize_and_log
admin_user = Blueprint('adminUser', __name__, url_prefix='/admin/user')
@@ -91,6 +92,7 @@ def edit(id):
checked_roles.append(r.id)
return render_template('admin/user/edit.html', user=user, roles=roles, checked_roles=checked_roles)
# 编辑用户
@admin_user.route('/update', methods=['PUT'])
@authorize_and_log("admin:user:edit")
@@ -106,6 +108,57 @@ def update():
return jsonify(success=True, msg="更新成功")
# 个人中心
@admin_user.route('/center')
@login_required
def center():
user_info = current_user
user_logs = get_current_user_logs()
return render_template('admin/user/center.html', user_info=user_info, user_logs=user_logs)
# 修改头像
@admin_user.route('/profile')
@login_required
def profile():
return render_template('admin/user/profile.html')
# 修改头像
@admin_user.route('/updateAvatar', methods=['PUT'])
@login_required
def updateAvatar():
url = request.json.get("avatar").get("src")
if not update_avatar(url):
return jsonify(msg="出错啦", success=False)
return jsonify(msg="修改成功", success=True)
# 修改当前用户信息
@admin_user.route('/updateInfo', methods=['PUT'])
@login_required
def updateInfo():
res_json = request.json
if not update_current_user_info(req_json=res_json):
return jsonify(msg="出错啦", success=False)
return jsonify(msg="更新成功", success=True)
# 修改当前用户密码
@admin_user.route('/editPassword', methods=['GET'])
@login_required
def editPassword():
return render_template('admin/user/edit_password.html')
# 修改当前用户密码
@admin_user.route('/editPassword', methods=['PUT'])
@login_required
def edit_password_put():
res_json = request.json
return edit_password(res_json=res_json)
# 启用用户
@admin_user.route('/enable', methods=['PUT'])
@authorize_and_log("admin:user:edit")
@@ -141,4 +194,3 @@ def batchRemove():
ids = request.form.getlist('ids[]')
batch_remove(ids)
return jsonify(success=True, msg="批量删除成功")