From dc4835165df1d4c41e1ecfb3e0a9100da2e47dfe Mon Sep 17 00:00:00 2001 From: wangziqi Date: Thu, 2 Jul 2026 11:46:47 +0800 Subject: [PATCH] feat(rbac): register RbacModule and PermissionGuard in AppModule --- backend/src/app.module.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts index 4aa01cd..ad1a3b6 100644 --- a/backend/src/app.module.ts +++ b/backend/src/app.module.ts @@ -3,9 +3,15 @@ import { APP_GUARD } from '@nestjs/core'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler'; -import { Student, Room, Occupancy, RoomExpense, PersonalExpense, Bill, BillItem, User, OperationLog, Deposit, Classroom, Tenant, ClassroomRental } from './entities'; +import { + Student, Room, Occupancy, RoomExpense, PersonalExpense, + Bill, BillItem, User, OperationLog, Deposit, Classroom, + Tenant, ClassroomRental, Permission, Role, +} from './entities'; import { AuthModule } from './auth/auth.module'; +import { RbacModule } from './rbac/rbac.module'; import { StudentsModule } from './students/students.module'; +import { PermissionGuard } from './auth/guards/permission.guard'; import { RoomsModule } from './rooms/rooms.module'; import { OccupanciesModule } from './occupancies/occupancies.module'; import { ExpensesModule } from './expenses/expenses.module'; @@ -29,6 +35,11 @@ import { ClassroomRentalsModule } from './classroom-rentals/classroom-rentals.mo inject: [ConfigService], useFactory: (config: ConfigService): any => { const dbType = config.get('DB_TYPE', 'sqlite'); + const allEntities = [ + Student, Room, Occupancy, RoomExpense, PersonalExpense, + Bill, BillItem, User, OperationLog, Deposit, Classroom, + Tenant, ClassroomRental, Permission, Role, + ]; if (dbType === 'mysql') { return { type: 'mysql' as const, @@ -37,7 +48,7 @@ import { ClassroomRentalsModule } from './classroom-rentals/classroom-rentals.mo username: config.get('DB_USERNAME', 'root'), password: config.get('DB_PASSWORD', ''), database: config.get('DB_DATABASE', 'dorm_billing'), - entities: [Student, Room, Occupancy, RoomExpense, PersonalExpense, Bill, BillItem, User, OperationLog, Deposit, Classroom, Tenant, ClassroomRental], + entities: allEntities, synchronize: true, charset: 'utf8mb4', }; @@ -45,12 +56,13 @@ import { ClassroomRentalsModule } from './classroom-rentals/classroom-rentals.mo return { type: 'better-sqlite3' as const, database: config.get('DB_DATABASE', 'dorm_billing.db'), - entities: [Student, Room, Occupancy, RoomExpense, PersonalExpense, Bill, BillItem, User, OperationLog, Deposit, Classroom, Tenant, ClassroomRental], + entities: allEntities, synchronize: true, }; }, }), AuthModule, + RbacModule, StudentsModule, RoomsModule, OccupanciesModule, @@ -65,6 +77,7 @@ import { ClassroomRentalsModule } from './classroom-rentals/classroom-rentals.mo ], providers: [ { provide: APP_GUARD, useClass: ThrottlerGuard }, + { provide: APP_GUARD, useClass: PermissionGuard }, ], }) export class AppModule {}