"""角色权限配置与用户角色分配;旧制作人设置只保留兼容提示。""" from fastapi import APIRouter from app.api.deps import AdminUser, DbSession, RequestMetaDep from app.core.response import ok from app.schemas.authorization import ( AuthorizationPreviewIn, AuthorizationSettingsIn, RolePermissionsIn, UserAuthorizationIn, ) from app.services import authorization_management as service from app.services.permission_catalog import CATALOG router = APIRouter(prefix="/system", tags=["系统管理 · 权限"]) @router.get("/permissions/catalog") def catalog(session: DbSession, actor: AdminUser): service.require_admin(session, actor) return ok(list(CATALOG.values())) @router.get("/roles/{role_id}/permissions") def role_permissions(role_id: int, session: DbSession, actor: AdminUser): return ok(service.role_permissions(session, role_id)) @router.put("/roles/{role_id}/permissions") def save_role(role_id: int, payload: RolePermissionsIn, session: DbSession, actor: AdminUser, meta: RequestMetaDep): return ok(service.save_role(session, role_id, payload, actor, meta)) @router.get("/users/{user_id}/authorization") def user_authorization(user_id: int, session: DbSession, actor: AdminUser): return ok(service.user_authorization(session, user_id)) @router.post("/users/{user_id}/authorization/preview") def preview(user_id: int, payload: AuthorizationPreviewIn, session: DbSession, actor: AdminUser): return ok(service.preview(session, user_id, payload)) @router.put("/users/{user_id}/authorization") def save_user(user_id: int, payload: UserAuthorizationIn, session: DbSession, actor: AdminUser, meta: RequestMetaDep): return ok(service.save_user(session, user_id, payload, actor, meta)) @router.get("/authorization-settings") def settings(session: DbSession, actor: AdminUser): return ok(service.settings_out(session)) @router.put("/authorization-settings") def save_settings(payload: AuthorizationSettingsIn, session: DbSession, actor: AdminUser, meta: RequestMetaDep): return ok(service.save_settings(session, payload, actor, meta))