22 lines
598 B
TypeScript
22 lines
598 B
TypeScript
import { Injectable } from '@nestjs/common';
|
|
import { RolesRepository } from '../core-data/repositories/roles.repository';
|
|
|
|
export interface ResolvedPermissions {
|
|
roles: string[];
|
|
permissions: string[];
|
|
}
|
|
|
|
@Injectable()
|
|
export class PermissionResolverService {
|
|
constructor(private readonly roles: RolesRepository) {}
|
|
|
|
async resolveForUser(userId: string): Promise<ResolvedPermissions> {
|
|
const [roles, permissions] = await Promise.all([
|
|
this.roles.findRoleCodesForUser(userId),
|
|
this.roles.findPermissionCodesForUser(userId),
|
|
]);
|
|
|
|
return { roles, permissions };
|
|
}
|
|
}
|