diff --git a/pear_admin/apis/user.py b/pear_admin/apis/user.py index 6c2f456..0baaedc 100644 --- a/pear_admin/apis/user.py +++ b/pear_admin/apis/user.py @@ -4,7 +4,7 @@ from flask import Blueprint, request from flask_sqlalchemy.pagination import Pagination from pear_admin.extensions import db -from pear_admin.orms import UserORM +from pear_admin.orms import RoleORM, UserORM user_api = Blueprint("user", __name__) @@ -58,3 +58,34 @@ def del_user(rid): user_obj = UserORM.query.get(rid) user_obj.delete() return {"code": 0, "message": "删除用户成功"} + + +@user_api.get("/user/user_role/") +def get_user_role(uid): + user: UserORM = db.session.execute( + db.select(UserORM).where(UserORM.id == uid) + ).scalar() + + wn_role_list = [r.id for r in user.role_list] + + return { + "code": 0, + "message": "返回角色权限数据成功", + "data": wn_role_list, + } + + +@user_api.put("/user/user_role/") +def change_user_role(rid): + role_ids = request.json.get("rights_ids", "") + role_list = role_ids.split(",") + + user: UserORM = db.session.execute( + db.select(UserORM).where(UserORM.id == rid) + ).scalar() + role_obj_list = db.session.execute( + db.select(RoleORM).where(RoleORM.id.in_(role_list)) + ).all() + user.role_list = [r[0] for r in role_obj_list] + user.save() + return {"code": 0, "message": "授权成功"} diff --git a/pear_admin/views/views.py b/pear_admin/views/views.py index 6d7a429..c897da8 100644 --- a/pear_admin/views/views.py +++ b/pear_admin/views/views.py @@ -18,6 +18,11 @@ def role_rights_view(rid): return render_template("views/role/role_rights.html", rid=rid) +@views_bp.get("/views/user_role/") +def user_role_view(rid): + return render_template("views/user/user_role.html", rid=rid) + + @views_bp.get("/views/department") def department_view(): return render_template("views/department/index.html") diff --git a/templates/views/role/index.html b/templates/views/role/index.html index 200c3c9..8c03998 100644 --- a/templates/views/role/index.html +++ b/templates/views/role/index.html @@ -204,8 +204,7 @@ }, }); } else if (obj.event === "role-tool-detail") { - console.log("角色授权"); - // role-tool-detail + // 角色授权 role-tool-detail layer.open({ type: 2, title: "授权", diff --git a/templates/views/role/role_rights.html b/templates/views/role/role_rights.html index 7e35e0e..3cfe99b 100644 --- a/templates/views/role/role_rights.html +++ b/templates/views/role/role_rights.html @@ -1,8 +1,8 @@ - + - Title + 角色管理 {% include 'includes/script.html' %} diff --git a/templates/views/user/index.html b/templates/views/user/index.html index be9748a..22642a2 100644 --- a/templates/views/user/index.html +++ b/templates/views/user/index.html @@ -220,7 +220,14 @@ }, }); } else if (obj.event === "user-tool-detail") { - console.log("角色授权"); + // 用户授权 + layer.open({ + type: 2, + title: "授权", + shade: 0.1, + area: ["500px", "500px"], + content: "/views/user_role/" + obj.data["id"], + }); } }); diff --git a/templates/views/user/user_role.html b/templates/views/user/user_role.html new file mode 100644 index 0000000..67b1383 --- /dev/null +++ b/templates/views/user/user_role.html @@ -0,0 +1,103 @@ + + + + + 用户授权 + {% include 'includes/script.html' %} + + +
+
+
+
    +
    +
    +
    + + +
    +
    +
    +
    + + + +