feat: Enhance role management by adding role assignment functionality and checks for existing roles

This commit is contained in:
beilunyang
2024-12-28 17:50:47 +08:00
parent 1183f0df5f
commit fbd65a5ee4
3 changed files with 32 additions and 8 deletions
+15 -1
View File
@@ -17,13 +17,27 @@ export async function POST(request: Request) {
if (roleName !== ROLES.KNIGHT) {
return Response.json(
{ error: "角色不合法" },
{ error: "只能册封骑士" },
{ status: 400 }
);
}
const db = createDb();
const isEmperor = await db.query.userRoles.findFirst({
where: eq(userRoles.userId, userId),
with: {
role: true,
},
}).then(userRole => userRole?.role.name === ROLES.EMPEROR);
if (isEmperor) {
return Response.json(
{ error: "不能降级皇帝" },
{ status: 400 }
);
}
let targetRole = await db.query.roles.findFirst({
where: eq(roles.name, roleName),
});