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