UNPKG

skailan-core

Version:

Servicio de autenticación y multitenancy para Skailan.

67 lines 2.64 kB
import { PrismaClient } from "@prisma/client"; import { CreatePermissionRequest, AssignPermissionRequest, PermissionResponse, RolePermissionResponse, BulkPermissionAssignment, BulkPermissionResponse, PermissionValidation, PermissionString } from "../types/rbac"; export declare class PermissionService { private prisma; constructor(prisma: PrismaClient); /** * Crear un nuevo permiso */ createPermission(data: CreatePermissionRequest, organizationId?: string): Promise<PermissionResponse>; /** * Obtener todos los permisos de una organización */ getPermissions(organizationId?: string): Promise<PermissionResponse[]>; /** * Obtener un permiso por ID */ getPermissionById(id: string): Promise<PermissionResponse | null>; /** * Actualizar un permiso */ updatePermission(id: string, data: Partial<CreatePermissionRequest>): Promise<PermissionResponse>; /** * Eliminar un permiso */ deletePermission(id: string): Promise<void>; /** * Asignar un permiso a un rol */ assignPermissionToRole(data: AssignPermissionRequest, organizationId?: string): Promise<RolePermissionResponse>; /** * Revocar un permiso de un rol */ revokePermissionFromRole(role: string, permissionId: string, organizationId?: string): Promise<void>; /** * Obtener permisos de un rol */ getRolePermissions(role: string, organizationId?: string): Promise<PermissionResponse[]>; /** * Obtener roles que tienen un permiso específico */ getRolesWithPermission(permissionId: string, organizationId?: string): Promise<string[]>; /** * Asignar múltiples permisos a un rol */ bulkAssignPermissions(data: BulkPermissionAssignment, organizationId?: string): Promise<BulkPermissionResponse>; /** * Verificar si un usuario tiene un permiso específico */ checkUserPermission(userId: string, organizationId: string, requiredPermission: PermissionString): Promise<PermissionValidation>; /** * Obtener todos los permisos de un usuario en una organización */ getUserPermissions(userId: string, organizationId: string): Promise<PermissionResponse[]>; /** * Crear permisos por defecto para una organización */ createDefaultPermissions(organizationId: string): Promise<void>; /** * Mapear PrismaPermission a PermissionResponse */ private mapToPermissionResponse; /** * Mapear PrismaRolePermission a RolePermissionResponse */ private mapToRolePermissionResponse; } //# sourceMappingURL=PermissionService.d.ts.map