This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"plugins": {
|
||||
"redis-development": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<Permission[]> {
|
||||
|
||||
Reference in New Issue
Block a user