feature: 角色增删改

This commit is contained in:
zhengxinonly
2023-10-14 20:20:46 +08:00
parent 075b624522
commit 52e0737311
5 changed files with 302 additions and 0 deletions
+2
View File
@@ -2,6 +2,7 @@ from flask import Blueprint, Flask
from .passport import passport_api
from .rights import rights_api
from .role import role_api
def register_apis(app: Flask):
@@ -9,5 +10,6 @@ def register_apis(app: Flask):
apis.register_blueprint(passport_api)
apis.register_blueprint(rights_api)
apis.register_blueprint(role_api)
app.register_blueprint(apis)
+52
View File
@@ -0,0 +1,52 @@
from flask import Blueprint, request
from flask_sqlalchemy.pagination import Pagination
from pear_admin.extensions import db
from pear_admin.orms import RoleORM
role_api = Blueprint("role", __name__)
@role_api.get("/role")
def role_list():
page = request.args.get("page", default=1, type=int)
per_page = request.args.get("limit", default=10, type=int)
q = db.select(RoleORM)
pages: Pagination = db.paginate(q, page=page, per_page=per_page)
return {
"code": 0,
"message": "获取角色数据成功",
"data": [item.json() for item in pages.items],
"count": pages.total,
}
@role_api.post("/role")
def create_role():
data = request.get_json()
if data["id"]:
del data["id"]
role = RoleORM(**data)
role.save()
return {"code": 0, "message": "新增角色成功"}
@role_api.put("/role/<int:rid>")
def change_role(rid):
data = request.get_json()
del data["id"]
role_obj = RoleORM.query.get(rid)
for key, value in data.items():
setattr(role_obj, key, value)
role_obj.save()
return {"code": 0, "message": "修改角色权限成功"}
@role_api.delete("/role/<int:rid>")
def del_role(rid):
role_obj = RoleORM.query.get(rid)
role_obj.delete()
return {"code": 0, "message": "删除角色成功"}
+1
View File
@@ -24,6 +24,7 @@ class RoleORM(BaseORM):
return {
"id": self.id,
"name": self.name,
"code": self.code,
"desc": self.desc,
"rights_ids": self.rights_ids,
}
+5
View File
@@ -6,3 +6,8 @@ views_bp = Blueprint("views", __name__, url_prefix="/views")
@views_bp.get("/rights")
def rights_view():
return render_template("views/rights/index.html")
@views_bp.get("/role")
def role_view():
return render_template("views/role/index.html")