用户,角色,权限增加是否启用,修补菜单排序

This commit is contained in:
mkg
2021-03-25 20:00:00 +08:00
parent 0672a13c0a
commit 2455351347
14 changed files with 818 additions and 79 deletions
+18 -9
View File
@@ -30,8 +30,12 @@ def add_auth_session():
role = current_user.role
user_power = []
for i in role:
for y in i.power:
user_power.append(y.code)
if i.enable == 0:
continue
for p in i.power:
if p.enable == 0:
continue
user_power.append(p.code)
session['permissions'] = user_power
@@ -46,19 +50,24 @@ def make_menu_tree():
role = current_user.role
power0 = []
power1 = []
print(role)
for i in role:
for y in i.power:
if int(y.type) == 0:
power0.append(y)
if i.enable == 0:
continue
for p in i.power:
if p.enable == 0:
continue
if int(p.type) == 0:
power0.append(p)
else:
power1.append(y)
power1.append(p)
power_schema = PowerSchema(many=True) # 用已继承ma.ModelSchema类的自定制类生成序列化类
power0_dict = power_schema.dump(power0) # 生成可序列化对象
power1_dict = power_schema.dump(power1) # 生成可序列化对象
print(power0)
print(power1)
power0_dict = sorted(power0_dict, key=lambda i: i['sort'])
power1_dict = sorted(power1_dict, key=lambda i: i['sort'])
# print(power0)
# print(power1)
menu = []
+29 -2
View File
@@ -55,7 +55,8 @@ def save_power(req):
name=powerName,
type=powerType,
url=powerUrl,
sort=sort
sort=sort,
enable=1
)
r = db.session.add(power)
db.session.commit()
@@ -68,7 +69,7 @@ def get_power_by_id(id):
return p
# 更新角色
# 更新权限
def update_power(req_json):
id = req_json.get("powerId")
data = {
@@ -88,6 +89,26 @@ def update_power(req_json):
return power
# 启动权限
def enable_status(id):
enable = 1
user = Power.query.filter_by(id=id).update({"enable": enable})
if user:
db.session.commit()
return True
return False
# 停用权限
def disable_status(id):
enable = 0
user = Power.query.filter_by(id=id).update({"enable": enable})
if user:
db.session.commit()
return True
return False
# 删除权限(目前没有判断父节点自动删除子节点)
def remove_power(id):
power = Power.query.filter_by(id=id).first()
@@ -101,3 +122,9 @@ def remove_power(id):
r = Power.query.filter_by(id=id).delete()
db.session.commit()
return r
# 批量删除权限
def batch_remove(ids):
for id in ids:
remove_power(id)
+22
View File
@@ -127,6 +127,28 @@ def update_role_power(id, power_list):
db.session.commit()
# 启动角色
def enable_status(id):
enable = 1
role = Role.query.filter_by(id=id).update({"enable": enable})
if role:
db.session.commit()
return True
return False
# 停用角色
def disable_status(id):
enable = 0
role = Role.query.filter_by(id=id).update({"enable": enable})
if role:
db.session.commit()
return True
return False
# 删除角色
def remove_role(id):
role = Role.query.filter_by(id=id).first()
+17 -5
View File
@@ -17,7 +17,7 @@ class UserSchema(ma.Schema):
id = fields.Integer()
username = fields.Str()
realname = fields.Str()
enable = fields.Bool()
enable = fields.Integer()
create_at = fields.DateTime()
update_at = fields.DateTime()
@@ -102,12 +102,24 @@ def delete_by_id(id):
return res
def update_status(status):
user = User.query.filter_by(id=id).update({'status': status})
# 启动用户
def enable_status(id):
enable = 1
user = User.query.filter_by(id=id).update({"enable": enable})
if user:
db.session.commit()
return jsonify(msg="更新成功", code=200)
return jsonify(msg="出错啦", code=999)
return True
return False
# 停用用户
def disable_status(id):
enable = 0
user = User.query.filter_by(id=id).update({"enable": enable})
if user:
db.session.commit()
return True
return False
# 批量删除
@@ -8,6 +8,4 @@ def init_template_global(app):
# print(session.get('permissions'))
return bool(power in session.get('permissions'))
@app.template_global()
def ab(a,b):
return a+b
+1 -1
View File
@@ -46,7 +46,7 @@ def login():
if user is None:
return jsonify(msg="不存在的用户", code=0,success=False)
if user.enable is 1:
if user.enable is 0:
return jsonify(msg="用户被暂停使用", code=0,success=False)
if username == user.username and user.validate_password(password):
+49 -12
View File
@@ -1,7 +1,7 @@
from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required
from applications.service.admin.power import get_power_dict, select_parent, save_power, remove_power, get_power_by_id, \
update_power
update_power, enable_status, disable_status, batch_remove
from applications.service.route_auth import authorize_and_log
admin_power = Blueprint('adminPower', __name__, url_prefix='/admin/power')
@@ -50,17 +50,6 @@ def save():
return jsonify(msg="成功", success=True)
# 权限删除
@admin_power.route('/remove/<int:id>', methods=['DELETE'])
@authorize_and_log("admin:power:remove")
def remove(id):
r = remove_power(id)
if r:
return jsonify(success=True, msg="删除成功")
else:
return jsonify(success=False, msg="删除失败")
# 权限编辑
@admin_power.route('/edit/<int:id>', methods=['GET', 'POST'])
@authorize_and_log("admin:power:edit")
@@ -82,3 +71,51 @@ def update():
if not res:
return jsonify(success=False, msg="更新权限失败")
return jsonify(success=True, msg="更新权限成功")
# 启用用户
@admin_power.route('/enable', methods=['PUT'])
@authorize_and_log("admin:power:edit")
def enable():
id = request.json.get('powerId')
print(id)
if id:
res = enable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="启动成功", success=True)
return jsonify(msg="数据错误", success=False)
# 禁用用户
@admin_power.route('/disable', methods=['PUT'])
@authorize_and_log("admin:power:edit")
def disenable():
id = request.json.get('powerId')
print(id)
if id:
res = disable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="禁用成功", success=True)
return jsonify(msg="数据错误", success=False)
# 权限删除
@admin_power.route('/remove/<int:id>', methods=['DELETE'])
@authorize_and_log("admin:power:remove")
def remove(id):
r = remove_power(id)
if r:
return jsonify(success=True, msg="删除成功")
else:
return jsonify(success=False, msg="删除失败")
# 批量删除
@admin_power.route('/batchRemove', methods=['DELETE'])
@authorize_and_log("admin:power:remove")
def batchRemove():
ids = request.form.getlist('ids[]')
batch_remove(ids)
return jsonify(success=True, msg="批量删除成功")
+29 -1
View File
@@ -2,7 +2,7 @@ from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required
from applications.service.admin.role import get_role_data_dict, add_role, get_role_power, update_role_power, \
get_role_by_id, update_role, remove_role, batch_remove
get_role_by_id, update_role, remove_role, batch_remove, enable_status, disable_status
from applications.service.route_auth import authorize_and_log
admin_role = Blueprint('adminRole', __name__, url_prefix='/admin/role')
@@ -105,7 +105,35 @@ def update():
return jsonify(success=False, msg="更新角色失败")
return jsonify(success=True, msg="更新角色成功")
# 启用用户
@admin_role.route('/enable', methods=['PUT'])
@authorize_and_log("admin:role:edit")
def enable():
id = request.json.get('roleId')
print(id)
if id:
res = enable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="启动成功", success=True)
return jsonify(msg="数据错误", success=False)
# 禁用用户
@admin_role.route('/disable', methods=['PUT'])
@authorize_and_log("admin:role:edit")
def disenable():
id = request.json.get('roleId')
print(id)
if id:
res = disable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="禁用成功", success=True)
return jsonify(msg="数据错误", success=False)
# 角色删除
@admin_role.route('/remove/<int:id>', methods=['DELETE'])
@authorize_and_log("admin:role:remove")
def remove(id):
+30 -13
View File
@@ -1,8 +1,8 @@
from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required
from applications.models.admin import User, Role
from applications.service.admin.user import get_user_data_dict, add_user, delete_by_id, update_status, \
batch_remove, update_user, update_user_role, is_user_exists, add_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
from applications.service.route_auth import authorize_and_log
admin_user = Blueprint('adminUser', __name__, url_prefix='/admin/user')
@@ -91,7 +91,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")
def update():
@@ -106,16 +106,32 @@ def update():
return jsonify(success=True, msg="更新成功")
# 更新用户状态
# @admin_user.route('/update/status', methods=['POST'])
# @login_required
# def ustatus():
# id = request.form.get('id')
# status = request.form.get('status')
# if id and status:
# res = update_status(status=status)
# return res
# return jsonify(msg="出错啦", code=999)
# 启用用户
@admin_user.route('/enable', methods=['PUT'])
@authorize_and_log("admin:user:edit")
def enable():
id = request.json.get('userId')
print(id)
if id:
res = enable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="启动成功", success=True)
return jsonify(msg="数据错误", success=False)
# 禁用用户
@admin_user.route('/disable', methods=['PUT'])
@authorize_and_log("admin:user:edit")
def disenable():
id = request.json.get('userId')
print(id)
if id:
res = disable_status(id)
if not res:
return jsonify(msg="出错啦", success=False)
return jsonify(msg="禁用成功", success=True)
return jsonify(msg="数据错误", success=False)
# 批量删除
@@ -125,3 +141,4 @@ def batchRemove():
ids = request.form.getlist('ids[]')
batch_remove(ids)
return jsonify(success=True, msg="批量删除成功")