diff --git a/.cursor/settings.json b/.cursor/settings.json new file mode 100644 index 0000000..6f42aa2 --- /dev/null +++ b/.cursor/settings.json @@ -0,0 +1,7 @@ +{ + "plugins": { + "redis-development": { + "enabled": true + } + } +} diff --git a/src/modules/roles/providers/permissions.service.ts b/src/modules/roles/providers/permissions.service.ts index b3f9b41..2282f6f 100644 --- a/src/modules/roles/providers/permissions.service.ts +++ b/src/modules/roles/providers/permissions.service.ts @@ -9,6 +9,7 @@ import { AdminRole } from 'src/modules/admin/entities/adminRole.entity'; @Injectable() export class PermissionsService { private readonly ADMIN_PERMISSIONS_KEY = 'admin-perms'; + private readonly ADMIN_PERMISSIONS_TTL = 3600; // seconds, aligned with CACHE_TTL default constructor( @InjectRepository(Permission) @@ -54,6 +55,7 @@ export class PermissionsService { ); if (!admin || !admin.roles) { + await this.cacheService.set(cacheKey, JSON.stringify([]), this.ADMIN_PERMISSIONS_TTL); return []; } @@ -74,7 +76,10 @@ export class PermissionsService { }), ); - return permissions.flat().map(p => p.name); + const permissionNames = permissions.flat().map(p => p.name); + await this.cacheService.set(cacheKey, JSON.stringify(permissionNames), this.ADMIN_PERMISSIONS_TTL); + + return permissionNames; } async getAdminFullPermissions(adminId: string, restId: string): Promise {