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()
|
@Injectable()
|
||||||
export class PermissionsService {
|
export class PermissionsService {
|
||||||
private readonly ADMIN_PERMISSIONS_KEY = 'admin-perms';
|
private readonly ADMIN_PERMISSIONS_KEY = 'admin-perms';
|
||||||
|
private readonly ADMIN_PERMISSIONS_TTL = 3600; // seconds, aligned with CACHE_TTL default
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(Permission)
|
@InjectRepository(Permission)
|
||||||
@@ -54,6 +55,7 @@ export class PermissionsService {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (!admin || !admin.roles) {
|
if (!admin || !admin.roles) {
|
||||||
|
await this.cacheService.set(cacheKey, JSON.stringify([]), this.ADMIN_PERMISSIONS_TTL);
|
||||||
return [];
|
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[]> {
|
async getAdminFullPermissions(adminId: string, restId: string): Promise<Permission[]> {
|
||||||
|
|||||||
Reference in New Issue
Block a user