@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
TypeScript
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 {};