Przeglądaj źródła

feat: add fixed admin role ID constant and update user role seeding logic

Dave 1 miesiąc temu
rodzic
commit
7f04d0b821

+ 3 - 2
apps/box-mgnt-api/src/mgnt-backend/core/user/user.service.ts

@@ -30,7 +30,8 @@ export class UserService {
     private readonly mongoPrismaService: MongoPrismaService,
     private readonly twoFAService: TwoFAService,
   ) {}
-
+  // create a const fixed roleId for admin role '6946c613ea4266475e73d074'
+  private readonly ADMIN_ROLE_ID = '6946c613ea4266475e73d074';
   logger = new Logger('UserService'); // you can name it anything
 
   async create(createUserDto: CreateUserDto) {
@@ -604,7 +605,7 @@ export class UserService {
     const adminRole = await this.mongoPrismaService.sysUserRole.findFirst({
       where: {
         userId,
-        // roleId: 1, // Admin role
+        roleId: this.ADMIN_ROLE_ID, // Admin role
       },
     });
 

+ 18 - 1
prisma/mongo/seed-admin.ts

@@ -946,15 +946,23 @@ function getDefaultPermissions(type: MenuType) {
 async function seedUsers() {
   console.log('📝 Seeding users and roles...');
 
+  await prisma.$transaction([
+    prisma.sysUserRole.deleteMany(),
+    prisma.sysUser.deleteMany(),
+    prisma.sysRole.deleteMany(),
+  ]);
+
   // Upsert role by unique name
   const roleCreateData: Prisma.SysRoleUncheckedCreateInput = {
+    id: '6946c613ea4266475e73d074',
     name: '管理员',
+    status: true,
     remark: '管理员专用',
   };
 
   const role = await prisma.sysRole.upsert({
     where: { name: '管理员' },
-    update: { remark: '管理员专用' },
+    update: { remark: '管理员专用', status: true },
     create: roleCreateData,
   });
 
@@ -997,6 +1005,15 @@ async function seedUsers() {
 async function seedMenus() {
   console.log('📝 Seeding menus...');
 
+  await prisma.$runCommandRaw({
+    delete: 'sys_api_permission',
+    deletes: [{ q: {}, limit: 0 }],
+  });
+  await prisma.$runCommandRaw({
+    delete: 'sys_menu',
+    deletes: [{ q: {}, limit: 0 }],
+  });
+
   const legacyIdToNewId = new Map<number, string>();
   const inserted = new Set<number>();