UNPKG

n8n

Version:

n8n Workflow Automation Tool

44 lines 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDataTableListFilter = getDataTableListFilter; exports.resolveProjectIdForCreate = resolveProjectIdForCreate; const db_1 = require("@n8n/db"); const di_1 = require("@n8n/di"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const forbidden_error_1 = require("../../../../errors/response-errors/forbidden.error"); const project_service_ee_1 = require("../../../../services/project.service.ee"); async function getDataTableListFilter(userId, isGlobalOwnerOrAdmin, requestedProjectId, restFilter) { if (requestedProjectId) { return { ...restFilter, projectId: requestedProjectId }; } if (isGlobalOwnerOrAdmin) { return restFilter; } const personalProject = await di_1.Container.get(db_1.ProjectRepository).getPersonalProjectForUserOrFail(userId); const projectRelations = await di_1.Container.get(db_1.ProjectRelationRepository).find({ where: { userId }, relations: ['project'], }); const teamProjectIds = projectRelations .filter((rel) => rel.project.type === 'team') .map((rel) => rel.projectId); return { ...restFilter, projectId: [personalProject.id, ...teamProjectIds], }; } async function resolveProjectIdForCreate(user, requestedProjectId) { if (!requestedProjectId) { const project = await di_1.Container.get(db_1.ProjectRepository).getPersonalProjectForUserOrFail(user.id); return project.id; } const exists = await di_1.Container.get(db_1.ProjectRepository).findOneBy({ id: requestedProjectId }); if (!exists) { throw new bad_request_error_1.BadRequestError(`Project with ID "${requestedProjectId}" not found`); } const project = await di_1.Container.get(project_service_ee_1.ProjectService).getProjectWithScope(user, requestedProjectId, ['dataTable:create']); if (!project) throw new forbidden_error_1.ForbiddenError(); return project.id; } //# sourceMappingURL=data-tables.service.js.map