UNPKG

skailan-core

Version:

Servicio de autenticación y multitenancy para Skailan.

80 lines 2.58 kB
import { PrismaClient } from "@prisma/client"; import { PermissionService } from "./PermissionService"; import { PermissionResponse, PermissionValidation, RBACContext, RBACConfig, Resource, Action } from "../types/rbac"; export declare class RBACService { private prisma; private permissionService; private cache; private config; constructor(prisma: PrismaClient, config?: Partial<RBACConfig>); /** * Verificar si un usuario tiene un permiso específico */ checkPermission(userId: string, organizationId: string, resource: Resource, action: Action): Promise<PermissionValidation>; /** * Verificar múltiples permisos de una vez */ checkMultiplePermissions(userId: string, organizationId: string, permissions: Array<{ resource: Resource; action: Action; }>): Promise<{ hasAllPermissions: boolean; results: Array<{ permission: string; hasPermission: boolean; }>; }>; /** * Obtener contexto RBAC completo de un usuario */ getRBACContext(userId: string, organizationId: string): Promise<RBACContext | null>; /** * Verificar si un usuario tiene un rol específico o superior */ hasRoleOrHigher(userId: string, organizationId: string, requiredRole: string): Promise<boolean>; /** * Obtener todos los permisos de un usuario con cache */ getUserPermissions(userId: string, organizationId: string): Promise<PermissionResponse[]>; /** * Limpiar cache de permisos */ clearCache(userId?: string, organizationId?: string): void; /** * Obtener estadísticas de permisos */ getPermissionStats(organizationId: string): Promise<{ totalPermissions: number; totalRoleAssignments: number; permissionsByResource: Record<string, number>; permissionsByRole: Record<string, number>; }>; /** * Validar configuración de permisos */ validatePermissionConfiguration(organizationId: string): Promise<{ isValid: boolean; issues: string[]; }>; /** * Obtener el rol de un usuario */ private getUserRole; /** * Obtener permisos del cache */ private getCachedPermissions; /** * Cachear permisos */ private cachePermissions; /** * Obtener el servicio de permisos */ getPermissionService(): PermissionService; /** * Actualizar configuración */ updateConfig(config: Partial<RBACConfig>): void; } //# sourceMappingURL=RBACService.d.ts.map