UNPKG

@brandazm/dynamic-permissions

Version:

A flexible and powerful permissions management system for NestJS applications with built-in security features

26 lines (25 loc) 1.38 kB
import { ConfigService } from './config.service'; import { Permission } from '../interfaces/permission.interface'; import { Repository } from 'typeorm'; import { PermissionEntity } from '../models/permission.entity'; import { UserPermissionEntity } from '../models/user-permission.entity'; import { RouterPermissionEntity } from '../models/router-permission.entity'; import 'reflect-metadata'; import { AuditService } from './audit.service'; interface PermissionOptions { strategy?: 'AND' | 'OR'; } export declare class PermissionService { private readonly configService; private readonly permissionRepository; private readonly userPermissionRepository; private readonly routerPermissionRepository; private readonly auditService; private permissionCache; constructor(configService: ConfigService, permissionRepository: Repository<PermissionEntity>, userPermissionRepository: Repository<UserPermissionEntity>, routerPermissionRepository: Repository<RouterPermissionEntity>, auditService: AuditService); getUserPermissions(userId: string): Promise<Permission[]>; checkRoutePermission(route: string, method: string, userId: string): Promise<boolean>; validateUserPermissions(userId: string, requiredPermissions: string[], options?: PermissionOptions): Promise<boolean>; getPermissions(): Promise<PermissionEntity[]>; } export {};