UNPKG

@brandazm/dynamic-permissions

Version:

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

33 lines (32 loc) 1.24 kB
import { Repository } from 'typeorm'; import { ConfigService } from './config.service'; import { AuditLogEntity, AuditAction } from '../models/audit-log.entity'; export interface AuditLog { id: string; userId: string; action: AuditAction; target: string; result: boolean; metadata: Record<string, any>; timestamp: Date; } export interface AuditFilters { userId?: string; action?: AuditAction; target?: string; result?: boolean; startDate?: Date; endDate?: Date; limit?: number; offset?: number; } export declare class AuditService { private readonly auditRepository; private readonly configService; constructor(auditRepository: Repository<AuditLogEntity>, configService: ConfigService); logPermissionCheck(userId: string, route: string, result: boolean, metadata?: Record<string, any>): Promise<void>; logPermissionChange(userId: string, permission: string, action: 'grant' | 'revoke', targetUserId: string, metadata?: Record<string, any>): Promise<void>; logPermissionModification(userId: string, permission: string, metadata?: Record<string, any>): Promise<void>; getAuditLogs(filters?: AuditFilters): Promise<AuditLog[]>; private createAuditLog; }