Files
pear-admin-flask/applications/service/admin/power.py
T
2021-03-18 22:59:02 +08:00

74 lines
2.0 KiB
Python

from flask_marshmallow import Marshmallow
from marshmallow import fields
from applications.models import db
from applications.models.admin import Power, Role
ma = Marshmallow()
class PowerSchema(ma.Schema): # 序列化类
powerId = fields.Str(attribute="id")
powerName = fields.Str(attribute="name")
powerType = fields.Str(attribute="type")
powerUrl = fields.Str(attribute="url")
openType = fields.Str(attribute="pen_type")
parentId = fields.Str(attribute="parent_id")
icon = fields.Str()
sort = fields.Integer()
create_time = fields.DateTime()
update_time = fields.DateTime()
enable = fields.Integer()
def get_power_dict():
power = Power.query.all()
power_schema = PowerSchema(many=True)
power_dict = power_schema.dump(power)
return power_dict
def select_parent():
power = Power.query.all()
power_schema = PowerSchema(many=True)
power_dict = power_schema.dump(power)
power_dict.append({"powerId": 0, "powerName": "顶级权限", "parentId": -1})
return power_dict
def save_power(req):
icon = req.get("icon")
openType = req.get("openType")
parentId = req.get("parentId")
powerCode = req.get("powerCode")
powerName = req.get("powerName")
powerType = req.get("powerType")
powerUrl = req.get("powerUrl")
power = Power(
icon=icon,
open_type=openType,
parent_id=parentId,
code=powerCode,
name=powerName,
type=powerType,
url=powerUrl
)
r = db.session.add(power)
db.session.commit()
return r
# 删除权限(目前没有判断父节点自动删除子节点)
def remove_power(id):
power = Power.query.filter_by(id=id).first()
role_id_list = []
roles = power.role
for role in roles:
role_id_list.append(role.id)
roles = Role.query.filter(Role.id.in_(role_id_list)).all()
for p in roles:
power.role.remove(p)
r = Power.query.filter_by(id=id).delete()
db.session.commit()
return r