skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
63 lines • 2.56 kB
TypeScript
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