UNPKG

skailan-core

Version:

Servicio de autenticación y multitenancy para Skailan.

63 lines 2.56 kB
import { Request, Response, NextFunction } from "express"; import { PrismaClient } from "@prisma/client"; import { RBACService } from "../services/RBACService"; import { Resource, Action } from "../types/rbac"; /** * Inicializar el servicio RBAC */ export declare function initializeRBAC(prisma: PrismaClient): void; /** * Middleware para verificar un permiso específico */ export declare function requirePermission(resource: Resource, action: Action): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para verificar múltiples permisos (todos requeridos) */ export declare function requireAllPermissions(permissions: Array<{ resource: Resource; action: Action; }>): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para verificar múltiples permisos (al menos uno requerido) */ export declare function requireAnyPermission(permissions: Array<{ resource: Resource; action: Action; }>): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para verificar rol específico o superior */ export declare function requireRole(allowedRoles: string[]): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para verificar rol específico o superior usando jerarquía */ export declare function requireRoleOrHigher(requiredRole: string): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para verificar permisos dinámicos basados en parámetros de ruta */ export declare function requireDynamicPermission(resourceExtractor: (req: Request) => Resource, actionExtractor: (req: Request) => Action): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para logging de auditoría de permisos */ export declare function auditPermission(resource: Resource, action: Action): (req: Request, res: Response, next: NextFunction) => Promise<void>; /** * Middleware para obtener contexto RBAC completo */ export declare function withRBACContext(req: Request, res: Response, next: NextFunction): void; /** * Función helper para crear middleware con múltiples verificaciones */ export declare function createRBACMiddleware(options: { permissions?: Array<{ resource: Resource; action: Action; }>; roles?: string[]; requireAll?: boolean; audit?: boolean; }): any[]; /** * Obtener el servicio RBAC */ export declare function getRBACService(): RBACService | null; //# sourceMappingURL=rbacMiddleware.d.ts.map