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