更新layui,新增个人信息修改
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -45,6 +45,7 @@ def upload():
|
||||
res = {
|
||||
"msg": "上传成功",
|
||||
"code": 0,
|
||||
"success":True,
|
||||
"data":
|
||||
{"src": file_url}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
# 获取验证码
|
||||
|
||||
@@ -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="批量删除成功")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user