n8n 1.42.1 → 1.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AbstractServer.js +4 -1
- package/dist/AbstractServer.js.map +1 -1
- package/dist/ActiveWebhooks.js +2 -2
- package/dist/ActiveWebhooks.js.map +1 -1
- package/dist/ActiveWorkflowManager.js +2 -7
- package/dist/ActiveWorkflowManager.js.map +1 -1
- package/dist/CredentialsHelper.d.ts +5 -7
- package/dist/CredentialsHelper.js +38 -34
- package/dist/CredentialsHelper.js.map +1 -1
- package/dist/Interfaces.d.ts +2 -1
- package/dist/Interfaces.js.map +1 -1
- package/dist/InternalHooks.d.ts +29 -3
- package/dist/InternalHooks.js +39 -9
- package/dist/InternalHooks.js.map +1 -1
- package/dist/Ldap/helpers.d.ts +1 -29
- package/dist/Ldap/helpers.js +16 -7
- package/dist/Ldap/helpers.js.map +1 -1
- package/dist/Ldap/ldap.service.js +1 -1
- package/dist/Ldap/ldap.service.js.map +1 -1
- package/dist/License.d.ts +4 -0
- package/dist/License.js +13 -0
- package/dist/License.js.map +1 -1
- package/dist/Mfa/mfa.service.d.ts +1 -1
- package/dist/Mfa/mfa.service.js +22 -10
- package/dist/Mfa/mfa.service.js.map +1 -1
- package/dist/PublicApi/types.d.ts +5 -2
- package/dist/PublicApi/types.js.map +1 -1
- package/dist/PublicApi/v1/handlers/audit/audit.handler.d.ts +3 -1
- package/dist/PublicApi/v1/handlers/audit/audit.handler.js +1 -1
- package/dist/PublicApi/v1/handlers/audit/audit.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/credentials/credentials.handler.d.ts +6 -5
- package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js +1 -3
- package/dist/PublicApi/v1/handlers/credentials/credentials.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/credentials/credentials.service.js +4 -2
- package/dist/PublicApi/v1/handlers/credentials/credentials.service.js.map +1 -1
- package/dist/PublicApi/v1/handlers/executions/executions.handler.d.ts +2 -2
- package/dist/PublicApi/v1/handlers/executions/executions.handler.js +3 -6
- package/dist/PublicApi/v1/handlers/executions/executions.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.d.ts +3 -1
- package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js +1 -1
- package/dist/PublicApi/v1/handlers/sourceControl/sourceControl.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/tags/tags.handler.d.ts +15 -5
- package/dist/PublicApi/v1/handlers/tags/tags.handler.js +5 -5
- package/dist/PublicApi/v1/handlers/tags/tags.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/users/users.handler.ee.d.ts +6 -3
- package/dist/PublicApi/v1/handlers/users/users.handler.ee.js +2 -2
- package/dist/PublicApi/v1/handlers/users/users.handler.ee.js.map +1 -1
- package/dist/PublicApi/v1/handlers/workflows/workflows.handler.d.ts +22 -8
- package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js +48 -44
- package/dist/PublicApi/v1/handlers/workflows/workflows.handler.js.map +1 -1
- package/dist/PublicApi/v1/handlers/workflows/workflows.service.d.ts +4 -2
- package/dist/PublicApi/v1/handlers/workflows/workflows.service.js +18 -13
- package/dist/PublicApi/v1/handlers/workflows/workflows.service.js.map +1 -1
- package/dist/PublicApi/v1/shared/middlewares/global.middleware.d.ts +8 -2
- package/dist/PublicApi/v1/shared/middlewares/global.middleware.js +22 -7
- package/dist/PublicApi/v1/shared/middlewares/global.middleware.js.map +1 -1
- package/dist/Server.js +4 -0
- package/dist/Server.js.map +1 -1
- package/dist/UserManagement/PermissionChecker.d.ts +4 -6
- package/dist/UserManagement/PermissionChecker.js +22 -31
- package/dist/UserManagement/PermissionChecker.js.map +1 -1
- package/dist/UserManagement/email/NodeMailer.js +1 -0
- package/dist/UserManagement/email/NodeMailer.js.map +1 -1
- package/dist/WaitTracker.js +3 -3
- package/dist/WaitTracker.js.map +1 -1
- package/dist/WaitingWebhooks.js +1 -8
- package/dist/WaitingWebhooks.js.map +1 -1
- package/dist/WebhookHelpers.js +7 -14
- package/dist/WebhookHelpers.js.map +1 -1
- package/dist/WorkflowExecuteAdditionalData.d.ts +2 -2
- package/dist/WorkflowExecuteAdditionalData.js +10 -11
- package/dist/WorkflowExecuteAdditionalData.js.map +1 -1
- package/dist/WorkflowRunner.js +1 -1
- package/dist/WorkflowRunner.js.map +1 -1
- package/dist/auth/auth.service.js +2 -2
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/build.tsbuildinfo +1 -1
- package/dist/commands/import/credentials.d.ts +2 -2
- package/dist/commands/import/credentials.js +55 -31
- package/dist/commands/import/credentials.js.map +1 -1
- package/dist/commands/import/workflow.d.ts +2 -1
- package/dist/commands/import/workflow.js +50 -21
- package/dist/commands/import/workflow.js.map +1 -1
- package/dist/commands/ldap/reset.d.ts +9 -0
- package/dist/commands/ldap/reset.js +96 -1
- package/dist/commands/ldap/reset.js.map +1 -1
- package/dist/commands/mfa/disable.js +11 -2
- package/dist/commands/mfa/disable.js.map +1 -1
- package/dist/commands/user-management/reset.js +5 -3
- package/dist/commands/user-management/reset.js.map +1 -1
- package/dist/commands/worker.js +1 -3
- package/dist/commands/worker.js.map +1 -1
- package/dist/config/index.d.ts +1 -0
- package/dist/config/schema.d.ts +6 -0
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.d.ts +19 -14
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -1
- package/dist/controllers/auth.controller.js +2 -2
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/dynamicNodeParameters.controller.d.ts +3 -5
- package/dist/controllers/dynamicNodeParameters.controller.js +10 -37
- package/dist/controllers/dynamicNodeParameters.controller.js.map +1 -1
- package/dist/controllers/invitation.controller.js +3 -3
- package/dist/controllers/invitation.controller.js.map +1 -1
- package/dist/controllers/oauth/abstractOAuth.controller.js +1 -1
- package/dist/controllers/oauth/abstractOAuth.controller.js.map +1 -1
- package/dist/controllers/passwordReset.controller.js +4 -4
- package/dist/controllers/passwordReset.controller.js.map +1 -1
- package/dist/controllers/project.controller.d.ts +32 -0
- package/dist/controllers/project.controller.js +227 -0
- package/dist/controllers/project.controller.js.map +1 -0
- package/dist/controllers/role.controller.d.ts +13 -0
- package/dist/controllers/role.controller.js +42 -0
- package/dist/controllers/role.controller.js.map +1 -0
- package/dist/controllers/users.controller.d.ts +9 -3
- package/dist/controllers/users.controller.js +62 -64
- package/dist/controllers/users.controller.js.map +1 -1
- package/dist/controllers/workflowStatistics.controller.d.ts +1 -1
- package/dist/controllers/workflowStatistics.controller.js +5 -3
- package/dist/controllers/workflowStatistics.controller.js.map +1 -1
- package/dist/credentials/credentials.controller.d.ts +25 -12
- package/dist/credentials/credentials.controller.js +67 -137
- package/dist/credentials/credentials.controller.js.map +1 -1
- package/dist/credentials/credentials.service.d.ts +30 -7
- package/dist/credentials/credentials.service.ee.d.ts +23 -15
- package/dist/credentials/credentials.service.ee.js +42 -39
- package/dist/credentials/credentials.service.ee.js.map +1 -1
- package/dist/credentials/credentials.service.js +157 -28
- package/dist/credentials/credentials.service.js.map +1 -1
- package/dist/databases/config.js +2 -0
- package/dist/databases/config.js.map +1 -1
- package/dist/databases/dsl/Column.js +5 -2
- package/dist/databases/dsl/Column.js.map +1 -1
- package/dist/databases/dsl/Table.d.ts +1 -0
- package/dist/databases/dsl/Table.js +2 -0
- package/dist/databases/dsl/Table.js.map +1 -1
- package/dist/databases/entities/ExecutionEntity.js +1 -1
- package/dist/databases/entities/ExecutionEntity.js.map +1 -1
- package/dist/databases/entities/Project.d.ts +12 -0
- package/dist/databases/entities/Project.js +41 -0
- package/dist/databases/entities/Project.js.map +1 -0
- package/dist/databases/entities/ProjectRelation.d.ts +11 -0
- package/dist/databases/entities/ProjectRelation.js +43 -0
- package/dist/databases/entities/ProjectRelation.js.map +1 -0
- package/dist/databases/entities/SharedCredentials.d.ts +3 -3
- package/dist/databases/entities/SharedCredentials.js +9 -9
- package/dist/databases/entities/SharedCredentials.js.map +1 -1
- package/dist/databases/entities/SharedWorkflow.d.ts +4 -4
- package/dist/databases/entities/SharedWorkflow.js +9 -9
- package/dist/databases/entities/SharedWorkflow.js.map +1 -1
- package/dist/databases/entities/User.d.ts +4 -1
- package/dist/databases/entities/User.js +20 -5
- package/dist/databases/entities/User.js.map +1 -1
- package/dist/databases/entities/index.d.ts +4 -0
- package/dist/databases/entities/index.js +4 -0
- package/dist/databases/entities/index.js.map +1 -1
- package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js +4 -0
- package/dist/databases/migrations/common/1711390882123-MoveSshKeysToDatabase.js.map +1 -1
- package/dist/databases/migrations/common/1714133768519-CreateProject.d.ts +13 -0
- package/dist/databases/migrations/common/1714133768519-CreateProject.js +221 -0
- package/dist/databases/migrations/common/1714133768519-CreateProject.js.map +1 -0
- package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.d.ts +4 -0
- package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js +22 -0
- package/dist/databases/migrations/common/1714133768521-MakeExecutionStatusNonNullable.js.map +1 -0
- package/dist/databases/migrations/mysqldb/index.js +4 -0
- package/dist/databases/migrations/mysqldb/index.js.map +1 -1
- package/dist/databases/migrations/postgresdb/index.js +4 -0
- package/dist/databases/migrations/postgresdb/index.js.map +1 -1
- package/dist/databases/migrations/sqlite/index.js +4 -0
- package/dist/databases/migrations/sqlite/index.js.map +1 -1
- package/dist/databases/repositories/credentials.repository.d.ts +0 -2
- package/dist/databases/repositories/credentials.repository.js +10 -10
- package/dist/databases/repositories/credentials.repository.js.map +1 -1
- package/dist/databases/repositories/project.repository.d.ts +13 -0
- package/dist/databases/repositories/project.repository.js +56 -0
- package/dist/databases/repositories/project.repository.js.map +1 -0
- package/dist/databases/repositories/projectRelation.repository.d.ts +12 -0
- package/dist/databases/repositories/projectRelation.repository.js +59 -0
- package/dist/databases/repositories/projectRelation.repository.js.map +1 -0
- package/dist/databases/repositories/sharedCredentials.repository.d.ts +19 -8
- package/dist/databases/repositories/sharedCredentials.repository.js +73 -24
- package/dist/databases/repositories/sharedCredentials.repository.js.map +1 -1
- package/dist/databases/repositories/sharedWorkflow.repository.d.ts +14 -21
- package/dist/databases/repositories/sharedWorkflow.repository.js +104 -71
- package/dist/databases/repositories/sharedWorkflow.repository.js.map +1 -1
- package/dist/databases/repositories/user.repository.d.ts +7 -1
- package/dist/databases/repositories/user.repository.js +25 -0
- package/dist/databases/repositories/user.repository.js.map +1 -1
- package/dist/databases/repositories/workflow.repository.d.ts +3 -6
- package/dist/databases/repositories/workflow.repository.js +13 -24
- package/dist/databases/repositories/workflow.repository.js.map +1 -1
- package/dist/databases/repositories/workflowStatistics.repository.js +13 -11
- package/dist/databases/repositories/workflowStatistics.repository.js.map +1 -1
- package/dist/databases/subscribers/UserSubscriber.d.ts +6 -0
- package/dist/databases/subscribers/UserSubscriber.js +64 -0
- package/dist/databases/subscribers/UserSubscriber.js.map +1 -0
- package/dist/databases/subscribers/index.d.ts +4 -0
- package/dist/databases/subscribers/index.js +8 -0
- package/dist/databases/subscribers/index.js.map +1 -0
- package/dist/decorators/{Scopes.d.ts → Scoped.d.ts} +1 -0
- package/dist/decorators/Scoped.js +26 -0
- package/dist/decorators/Scoped.js.map +1 -0
- package/dist/decorators/constants.d.ts +1 -1
- package/dist/decorators/constants.js +2 -2
- package/dist/decorators/constants.js.map +1 -1
- package/dist/decorators/index.d.ts +1 -1
- package/dist/decorators/index.js +4 -3
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/registerController.d.ts +2 -2
- package/dist/decorators/registerController.js +17 -13
- package/dist/decorators/registerController.js.map +1 -1
- package/dist/decorators/types.d.ts +6 -1
- package/dist/environments/sourceControl/sourceControlExport.service.ee.js +44 -2
- package/dist/environments/sourceControl/sourceControlExport.service.ee.js.map +1 -1
- package/dist/environments/sourceControl/sourceControlImport.service.ee.d.ts +2 -1
- package/dist/environments/sourceControl/sourceControlImport.service.ee.js +75 -55
- package/dist/environments/sourceControl/sourceControlImport.service.ee.js.map +1 -1
- package/dist/environments/sourceControl/types/exportableCredential.d.ts +2 -1
- package/dist/environments/sourceControl/types/exportableWorkflow.d.ts +2 -1
- package/dist/environments/sourceControl/types/resourceOwner.d.ts +8 -0
- package/dist/environments/sourceControl/types/resourceOwner.js +3 -0
- package/dist/environments/sourceControl/types/resourceOwner.js.map +1 -0
- package/dist/errors/aborted-execution-retry.error.d.ts +4 -0
- package/dist/errors/aborted-execution-retry.error.js +13 -0
- package/dist/errors/aborted-execution-retry.error.js.map +1 -0
- package/dist/errors/response-errors/forbidden.error.d.ts +4 -0
- package/dist/errors/response-errors/forbidden.error.js +11 -0
- package/dist/errors/response-errors/forbidden.error.js.map +1 -0
- package/dist/errors/response-errors/unauthenticated.error.d.ts +4 -0
- package/dist/errors/response-errors/unauthenticated.error.js +11 -0
- package/dist/errors/response-errors/unauthenticated.error.js.map +1 -0
- package/dist/executions/execution.service.ee.js +8 -7
- package/dist/executions/execution.service.ee.js.map +1 -1
- package/dist/executions/execution.service.js +5 -0
- package/dist/executions/execution.service.js.map +1 -1
- package/dist/executions/executions.controller.js +15 -9
- package/dist/executions/executions.controller.js.map +1 -1
- package/dist/middlewares/listQuery/dtos/credentials.filter.dto.d.ts +1 -0
- package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js +6 -0
- package/dist/middlewares/listQuery/dtos/credentials.filter.dto.js.map +1 -1
- package/dist/middlewares/listQuery/dtos/workflow.filter.dto.d.ts +1 -0
- package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js +6 -0
- package/dist/middlewares/listQuery/dtos/workflow.filter.dto.js.map +1 -1
- package/dist/permissions/checkAccess.d.ts +7 -0
- package/dist/permissions/checkAccess.js +64 -0
- package/dist/permissions/checkAccess.js.map +1 -0
- package/dist/permissions/global-roles.d.ts +4 -0
- package/dist/permissions/{roles.js → global-roles.js} +11 -5
- package/dist/permissions/global-roles.js.map +1 -0
- package/dist/permissions/project-roles.d.ts +4 -0
- package/dist/permissions/project-roles.js +53 -0
- package/dist/permissions/project-roles.js.map +1 -0
- package/dist/permissions/resource-roles.d.ts +5 -0
- package/dist/permissions/resource-roles.js +23 -0
- package/dist/permissions/resource-roles.js.map +1 -0
- package/dist/push/index.d.ts +1 -1
- package/dist/requests.d.ts +83 -17
- package/dist/requests.js.map +1 -1
- package/dist/services/activeWorkflows.service.js +4 -2
- package/dist/services/activeWorkflows.service.js.map +1 -1
- package/dist/services/credentials-tester.service.js +1 -1
- package/dist/services/credentials-tester.service.js.map +1 -1
- package/dist/services/events.service.js +19 -13
- package/dist/services/events.service.js.map +1 -1
- package/dist/services/frontend.service.js +6 -0
- package/dist/services/frontend.service.js.map +1 -1
- package/dist/services/import.service.d.ts +1 -1
- package/dist/services/import.service.js +4 -5
- package/dist/services/import.service.js.map +1 -1
- package/dist/services/ownership.service.d.ts +9 -3
- package/dist/services/ownership.service.js +47 -15
- package/dist/services/ownership.service.js.map +1 -1
- package/dist/services/project.service.d.ts +61 -0
- package/dist/services/project.service.js +277 -0
- package/dist/services/project.service.js.map +1 -0
- package/dist/services/role.service.d.ts +31 -0
- package/dist/services/role.service.js +142 -0
- package/dist/services/role.service.js.map +1 -0
- package/dist/services/user.service.d.ts +3 -3
- package/dist/services/user.service.js +14 -6
- package/dist/services/user.service.js.map +1 -1
- package/dist/services/userOnboarding.service.js +6 -1
- package/dist/services/userOnboarding.service.js.map +1 -1
- package/dist/sso/saml/saml.service.ee.js +1 -1
- package/dist/sso/saml/saml.service.ee.js.map +1 -1
- package/dist/sso/saml/samlHelpers.d.ts +1 -1
- package/dist/sso/saml/samlHelpers.js +14 -22
- package/dist/sso/saml/samlHelpers.js.map +1 -1
- package/dist/telemetry/index.js +4 -0
- package/dist/telemetry/index.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +3 -1
- package/dist/utils.js.map +1 -1
- package/dist/workflows/workflow.request.d.ts +12 -4
- package/dist/workflows/workflow.service.d.ts +16 -7
- package/dist/workflows/workflow.service.ee.d.ts +8 -8
- package/dist/workflows/workflow.service.ee.js +28 -35
- package/dist/workflows/workflow.service.ee.js.map +1 -1
- package/dist/workflows/workflow.service.js +93 -39
- package/dist/workflows/workflow.service.js.map +1 -1
- package/dist/workflows/workflowExecution.service.d.ts +2 -1
- package/dist/workflows/workflowExecution.service.js +2 -2
- package/dist/workflows/workflowExecution.service.js.map +1 -1
- package/dist/workflows/workflowHistory/workflowHistory.service.ee.d.ts +0 -1
- package/dist/workflows/workflowHistory/workflowHistory.service.ee.js +10 -14
- package/dist/workflows/workflowHistory/workflowHistory.service.ee.js.map +1 -1
- package/dist/workflows/workflowSharing.service.d.ts +12 -3
- package/dist/workflows/workflowSharing.service.js +24 -10
- package/dist/workflows/workflowSharing.service.js.map +1 -1
- package/dist/workflows/workflows.controller.d.ts +98 -11
- package/dist/workflows/workflows.controller.js +106 -77
- package/dist/workflows/workflows.controller.js.map +1 -1
- package/dist/workflows/workflows.types.d.ts +8 -2
- package/package.json +8 -8
- package/dist/decorators/Scopes.js +0 -15
- package/dist/decorators/Scopes.js.map +0 -1
- package/dist/errors/response-errors/unauthorized.error.d.ts +0 -4
- package/dist/errors/response-errors/unauthorized.error.js +0 -11
- package/dist/errors/response-errors/unauthorized.error.js.map +0 -1
- package/dist/permissions/roles.d.ts +0 -4
- package/dist/permissions/roles.js.map +0 -1
|
@@ -13,25 +13,11 @@ exports.SharedWorkflowRepository = void 0;
|
|
|
13
13
|
const typedi_1 = require("typedi");
|
|
14
14
|
const typeorm_1 = require("@n8n/typeorm");
|
|
15
15
|
const SharedWorkflow_1 = require("../entities/SharedWorkflow");
|
|
16
|
+
const role_service_1 = require("../../services/role.service");
|
|
16
17
|
let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.Repository {
|
|
17
|
-
constructor(dataSource) {
|
|
18
|
+
constructor(dataSource, roleService) {
|
|
18
19
|
super(SharedWorkflow_1.SharedWorkflow, dataSource.manager);
|
|
19
|
-
|
|
20
|
-
async hasAccess(workflowId, user) {
|
|
21
|
-
const where = {
|
|
22
|
-
workflowId,
|
|
23
|
-
};
|
|
24
|
-
if (!user.hasGlobalScope('workflow:read')) {
|
|
25
|
-
where.userId = user.id;
|
|
26
|
-
}
|
|
27
|
-
return await this.exist({ where });
|
|
28
|
-
}
|
|
29
|
-
async getSharedUserIds(workflowId) {
|
|
30
|
-
const sharedWorkflows = await this.find({
|
|
31
|
-
select: ['userId'],
|
|
32
|
-
where: { workflowId },
|
|
33
|
-
});
|
|
34
|
-
return sharedWorkflows.map((sharing) => sharing.userId);
|
|
20
|
+
this.roleService = roleService;
|
|
35
21
|
}
|
|
36
22
|
async getSharedWorkflowIds(workflowIds) {
|
|
37
23
|
const sharedWorkflows = await this.find({
|
|
@@ -44,67 +30,40 @@ let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.
|
|
|
44
30
|
}
|
|
45
31
|
async findByWorkflowIds(workflowIds) {
|
|
46
32
|
return await this.find({
|
|
47
|
-
relations: ['user'],
|
|
48
33
|
where: {
|
|
49
34
|
role: 'workflow:owner',
|
|
50
35
|
workflowId: (0, typeorm_1.In)(workflowIds),
|
|
51
36
|
},
|
|
37
|
+
relations: { project: { projectRelations: { user: true } } },
|
|
52
38
|
});
|
|
53
39
|
}
|
|
54
40
|
async findSharingRole(userId, workflowId) {
|
|
55
|
-
|
|
56
|
-
select:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const where = {
|
|
62
|
-
workflow: { id: workflowId },
|
|
63
|
-
};
|
|
64
|
-
if (!user.hasGlobalScope(scope)) {
|
|
65
|
-
where.user = { id: user.id };
|
|
66
|
-
}
|
|
67
|
-
if (roles) {
|
|
68
|
-
where.role = (0, typeorm_1.In)(roles);
|
|
69
|
-
}
|
|
70
|
-
const relations = ['workflow'];
|
|
71
|
-
if (extraRelations)
|
|
72
|
-
relations.push(...extraRelations);
|
|
73
|
-
return await this.findOne({ relations, where });
|
|
74
|
-
}
|
|
75
|
-
async makeOwnerOfAllWorkflows(user) {
|
|
76
|
-
return await this.update({ userId: (0, typeorm_1.Not)(user.id), role: 'workflow:owner' }, { user });
|
|
77
|
-
}
|
|
78
|
-
async getSharing(user, workflowId, options, relations = ['workflow']) {
|
|
79
|
-
const where = { workflowId };
|
|
80
|
-
if (!options.allowGlobalScope || !user.hasGlobalScope(options.globalScope)) {
|
|
81
|
-
where.userId = user.id;
|
|
82
|
-
}
|
|
83
|
-
return await this.findOne({ where, relations });
|
|
84
|
-
}
|
|
85
|
-
async getSharedWorkflows(user, options) {
|
|
86
|
-
return await this.find({
|
|
41
|
+
const sharing = await this.findOne({
|
|
42
|
+
select: {
|
|
43
|
+
role: true,
|
|
44
|
+
workflowId: true,
|
|
45
|
+
projectId: true,
|
|
46
|
+
},
|
|
87
47
|
where: {
|
|
88
|
-
|
|
89
|
-
|
|
48
|
+
workflowId,
|
|
49
|
+
project: { projectRelations: { role: 'project:personalOwner', userId } },
|
|
90
50
|
},
|
|
91
|
-
...(options.relations && { relations: options.relations }),
|
|
92
51
|
});
|
|
52
|
+
return sharing === null || sharing === void 0 ? void 0 : sharing.role;
|
|
93
53
|
}
|
|
94
|
-
async
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}, []);
|
|
107
|
-
return await transaction.save(newSharedWorkflows);
|
|
54
|
+
async makeOwnerOfAllWorkflows(project) {
|
|
55
|
+
return await this.update({
|
|
56
|
+
projectId: (0, typeorm_1.Not)(project.id),
|
|
57
|
+
role: 'workflow:owner',
|
|
58
|
+
}, { project });
|
|
59
|
+
}
|
|
60
|
+
async makeOwner(workflowIds, projectId, trx) {
|
|
61
|
+
trx = trx !== null && trx !== void 0 ? trx : this.manager;
|
|
62
|
+
return await trx.upsert(SharedWorkflow_1.SharedWorkflow, workflowIds.map((workflowId) => ({
|
|
63
|
+
workflowId,
|
|
64
|
+
projectId,
|
|
65
|
+
role: 'workflow:owner',
|
|
66
|
+
})), ['projectId', 'workflowId']);
|
|
108
67
|
}
|
|
109
68
|
async findWithFields(workflowIds, { select }) {
|
|
110
69
|
return await this.find({
|
|
@@ -114,16 +73,90 @@ let SharedWorkflowRepository = class SharedWorkflowRepository extends typeorm_1.
|
|
|
114
73
|
select,
|
|
115
74
|
});
|
|
116
75
|
}
|
|
117
|
-
async deleteByIds(
|
|
118
|
-
|
|
119
|
-
|
|
76
|
+
async deleteByIds(sharedWorkflowIds, projectId, trx) {
|
|
77
|
+
trx = trx !== null && trx !== void 0 ? trx : this.manager;
|
|
78
|
+
return await trx.delete(SharedWorkflow_1.SharedWorkflow, {
|
|
79
|
+
projectId,
|
|
120
80
|
workflowId: (0, typeorm_1.In)(sharedWorkflowIds),
|
|
121
81
|
});
|
|
122
82
|
}
|
|
83
|
+
async findWorkflowForUser(workflowId, user, scopes, { includeTags = false, em = this.manager } = {}) {
|
|
84
|
+
let where = { workflowId };
|
|
85
|
+
if (!user.hasGlobalScope(scopes, { mode: 'allOf' })) {
|
|
86
|
+
const projectRoles = this.roleService.rolesWithScope('project', scopes);
|
|
87
|
+
const workflowRoles = this.roleService.rolesWithScope('workflow', scopes);
|
|
88
|
+
where = {
|
|
89
|
+
...where,
|
|
90
|
+
role: (0, typeorm_1.In)(workflowRoles),
|
|
91
|
+
project: {
|
|
92
|
+
projectRelations: {
|
|
93
|
+
role: (0, typeorm_1.In)(projectRoles),
|
|
94
|
+
userId: user.id,
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const sharedWorkflow = await em.findOne(SharedWorkflow_1.SharedWorkflow, {
|
|
100
|
+
where,
|
|
101
|
+
relations: {
|
|
102
|
+
workflow: {
|
|
103
|
+
shared: { project: { projectRelations: { user: true } } },
|
|
104
|
+
tags: includeTags,
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
if (!sharedWorkflow) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return sharedWorkflow.workflow;
|
|
112
|
+
}
|
|
113
|
+
async findAllWorkflowsForUser(user, scopes) {
|
|
114
|
+
let where = {};
|
|
115
|
+
if (!user.hasGlobalScope(scopes, { mode: 'allOf' })) {
|
|
116
|
+
const projectRoles = this.roleService.rolesWithScope('project', scopes);
|
|
117
|
+
const workflowRoles = this.roleService.rolesWithScope('workflow', scopes);
|
|
118
|
+
where = {
|
|
119
|
+
...where,
|
|
120
|
+
role: (0, typeorm_1.In)(workflowRoles),
|
|
121
|
+
project: {
|
|
122
|
+
projectRelations: {
|
|
123
|
+
role: (0, typeorm_1.In)(projectRoles),
|
|
124
|
+
userId: user.id,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
const sharedWorkflows = await this.find({
|
|
130
|
+
where,
|
|
131
|
+
relations: {
|
|
132
|
+
workflow: {
|
|
133
|
+
shared: { project: { projectRelations: { user: true } } },
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
return sharedWorkflows.map((sw) => sw.workflow);
|
|
138
|
+
}
|
|
139
|
+
async findProjectIds(workflowId) {
|
|
140
|
+
const rows = await this.find({ where: { workflowId }, select: ['projectId'] });
|
|
141
|
+
const projectIds = rows.reduce((acc, row) => {
|
|
142
|
+
if (row.projectId)
|
|
143
|
+
acc.push(row.projectId);
|
|
144
|
+
return acc;
|
|
145
|
+
}, []);
|
|
146
|
+
return [...new Set(projectIds)];
|
|
147
|
+
}
|
|
148
|
+
async getWorkflowOwningProject(workflowId) {
|
|
149
|
+
var _a;
|
|
150
|
+
return (_a = (await this.findOne({
|
|
151
|
+
where: { workflowId, role: 'workflow:owner' },
|
|
152
|
+
relations: { project: true },
|
|
153
|
+
}))) === null || _a === void 0 ? void 0 : _a.project;
|
|
154
|
+
}
|
|
123
155
|
};
|
|
124
156
|
exports.SharedWorkflowRepository = SharedWorkflowRepository;
|
|
125
157
|
exports.SharedWorkflowRepository = SharedWorkflowRepository = __decorate([
|
|
126
158
|
(0, typedi_1.Service)(),
|
|
127
|
-
__metadata("design:paramtypes", [typeorm_1.DataSource
|
|
159
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource,
|
|
160
|
+
role_service_1.RoleService])
|
|
128
161
|
], SharedWorkflowRepository);
|
|
129
162
|
//# sourceMappingURL=sharedWorkflow.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedWorkflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/sharedWorkflow.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAiC;AACjC,0CAA+D;AAE/D,+DAAsF;
|
|
1
|
+
{"version":3,"file":"sharedWorkflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/sharedWorkflow.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { EntityManager, FindManyOptions } from '@n8n/typeorm';
|
|
1
|
+
import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm';
|
|
2
2
|
import { DataSource, Repository } from '@n8n/typeorm';
|
|
3
3
|
import type { ListQuery } from '../../requests';
|
|
4
4
|
import { type GlobalRole, User } from '../entities/User';
|
|
5
|
+
import { Project } from '../entities/Project';
|
|
5
6
|
export declare class UserRepository extends Repository<User> {
|
|
6
7
|
constructor(dataSource: DataSource);
|
|
7
8
|
findManyByIds(userIds: string[]): Promise<User[]>;
|
|
9
|
+
update(...args: Parameters<Repository<User>['update']>): Promise<import("@n8n/typeorm").UpdateResult>;
|
|
8
10
|
deleteAllExcept(user: User): Promise<void>;
|
|
9
11
|
getByIds(transaction: EntityManager, ids: string[]): Promise<User[]>;
|
|
10
12
|
findManyByEmail(emails: string[]): Promise<User[]>;
|
|
@@ -13,4 +15,8 @@ export declare class UserRepository extends Repository<User> {
|
|
|
13
15
|
countUsersByRole(): Promise<Record<GlobalRole, number>>;
|
|
14
16
|
toFindManyOptions(listQueryOptions?: ListQuery.Options): Promise<FindManyOptions<User>>;
|
|
15
17
|
getEmailsByIds(userIds: string[]): Promise<User[]>;
|
|
18
|
+
createUserWithProject(user: DeepPartial<User>, transactionManager?: EntityManager): Promise<{
|
|
19
|
+
user: User;
|
|
20
|
+
project: Project;
|
|
21
|
+
}>;
|
|
16
22
|
}
|
|
@@ -13,6 +13,8 @@ exports.UserRepository = void 0;
|
|
|
13
13
|
const typedi_1 = require("typedi");
|
|
14
14
|
const typeorm_1 = require("@n8n/typeorm");
|
|
15
15
|
const User_1 = require("../entities/User");
|
|
16
|
+
const Project_1 = require("../entities/Project");
|
|
17
|
+
const ProjectRelation_1 = require("../entities/ProjectRelation");
|
|
16
18
|
let UserRepository = class UserRepository extends typeorm_1.Repository {
|
|
17
19
|
constructor(dataSource) {
|
|
18
20
|
super(User_1.User, dataSource.manager);
|
|
@@ -22,6 +24,9 @@ let UserRepository = class UserRepository extends typeorm_1.Repository {
|
|
|
22
24
|
where: { id: (0, typeorm_1.In)(userIds) },
|
|
23
25
|
});
|
|
24
26
|
}
|
|
27
|
+
async update(...args) {
|
|
28
|
+
return await super.update(...args);
|
|
29
|
+
}
|
|
25
30
|
async deleteAllExcept(user) {
|
|
26
31
|
await this.delete({ id: (0, typeorm_1.Not)(user.id) });
|
|
27
32
|
}
|
|
@@ -90,6 +95,26 @@ let UserRepository = class UserRepository extends typeorm_1.Repository {
|
|
|
90
95
|
where: { id: (0, typeorm_1.In)(userIds), password: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) },
|
|
91
96
|
});
|
|
92
97
|
}
|
|
98
|
+
async createUserWithProject(user, transactionManager) {
|
|
99
|
+
const createInner = async (entityManager) => {
|
|
100
|
+
const newUser = entityManager.create(User_1.User, user);
|
|
101
|
+
const savedUser = await entityManager.save(newUser);
|
|
102
|
+
const savedProject = await entityManager.save(entityManager.create(Project_1.Project, {
|
|
103
|
+
type: 'personal',
|
|
104
|
+
name: savedUser.createPersonalProjectName(),
|
|
105
|
+
}));
|
|
106
|
+
await entityManager.save(entityManager.create(ProjectRelation_1.ProjectRelation, {
|
|
107
|
+
projectId: savedProject.id,
|
|
108
|
+
userId: savedUser.id,
|
|
109
|
+
role: 'project:personalOwner',
|
|
110
|
+
}));
|
|
111
|
+
return { user: savedUser, project: savedProject };
|
|
112
|
+
};
|
|
113
|
+
if (transactionManager) {
|
|
114
|
+
return await createInner(transactionManager);
|
|
115
|
+
}
|
|
116
|
+
return await createInner(this.manager);
|
|
117
|
+
}
|
|
93
118
|
};
|
|
94
119
|
exports.UserRepository = UserRepository;
|
|
95
120
|
exports.UserRepository = UserRepository = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAiC;AAEjC,0CAAuE;AAGvE,2CAAyD;
|
|
1
|
+
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/user.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { DataSource, Repository, type UpdateResult, type FindOptionsWhere, type
|
|
1
|
+
import { DataSource, Repository, type UpdateResult, type FindOptionsWhere, type FindOptionsRelations } from '@n8n/typeorm';
|
|
2
2
|
import type { ListQuery } from '../../requests';
|
|
3
3
|
import { WorkflowEntity } from '../entities/WorkflowEntity';
|
|
4
|
-
import { SharedWorkflow } from '../entities/SharedWorkflow';
|
|
5
4
|
export declare class WorkflowRepository extends Repository<WorkflowEntity> {
|
|
6
5
|
constructor(dataSource: DataSource);
|
|
7
6
|
get(where: FindOptionsWhere<WorkflowEntity>, options?: {
|
|
8
|
-
relations: string[]
|
|
7
|
+
relations: string[] | FindOptionsRelations<WorkflowEntity>;
|
|
9
8
|
}): Promise<WorkflowEntity | null>;
|
|
10
9
|
getAllActive(): Promise<WorkflowEntity[]>;
|
|
11
10
|
getActiveIds(): Promise<string[]>;
|
|
@@ -14,11 +13,9 @@ export declare class WorkflowRepository extends Repository<WorkflowEntity> {
|
|
|
14
13
|
fields?: string[];
|
|
15
14
|
}): Promise<WorkflowEntity[]>;
|
|
16
15
|
getActiveTriggerCount(): Promise<number>;
|
|
17
|
-
getSharings(transaction: EntityManager, workflowId: string, relations?: string[]): Promise<SharedWorkflow[]>;
|
|
18
|
-
pruneSharings(transaction: EntityManager, workflowId: string, userIds: string[]): Promise<DeleteResult>;
|
|
19
16
|
updateWorkflowTriggerCount(id: string, triggerCount: number): Promise<UpdateResult>;
|
|
20
17
|
getMany(sharedWorkflowIds: string[], options?: ListQuery.Options): Promise<{
|
|
21
|
-
workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "
|
|
18
|
+
workflows: (Pick<WorkflowEntity, "id"> & Partial<Pick<WorkflowEntity, "tags" | "active" | "name" | "createdAt" | "updatedAt" | "versionId">>)[] | ListQuery.Workflow.WithSharing[];
|
|
22
19
|
count: number;
|
|
23
20
|
}>;
|
|
24
21
|
findStartingWith(workflowName: string): Promise<Array<{
|
|
@@ -18,7 +18,6 @@ const typeorm_1 = require("@n8n/typeorm");
|
|
|
18
18
|
const utils_1 = require("../../utils");
|
|
19
19
|
const config_1 = __importDefault(require("../../config"));
|
|
20
20
|
const WorkflowEntity_1 = require("../entities/WorkflowEntity");
|
|
21
|
-
const SharedWorkflow_1 = require("../entities/SharedWorkflow");
|
|
22
21
|
const WebhookEntity_1 = require("../entities/WebhookEntity");
|
|
23
22
|
let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
24
23
|
constructor(dataSource) {
|
|
@@ -33,7 +32,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
33
32
|
async getAllActive() {
|
|
34
33
|
return await this.find({
|
|
35
34
|
where: { active: true },
|
|
36
|
-
relations:
|
|
35
|
+
relations: { shared: { project: { projectRelations: true } } },
|
|
37
36
|
});
|
|
38
37
|
}
|
|
39
38
|
async getActiveIds() {
|
|
@@ -46,7 +45,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
46
45
|
async findById(workflowId) {
|
|
47
46
|
return await this.findOne({
|
|
48
47
|
where: { id: workflowId },
|
|
49
|
-
relations:
|
|
48
|
+
relations: { shared: { project: { projectRelations: true } } },
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
async findByIds(workflowIds, { fields } = {}) {
|
|
@@ -63,20 +62,6 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
63
62
|
});
|
|
64
63
|
return totalTriggerCount !== null && totalTriggerCount !== void 0 ? totalTriggerCount : 0;
|
|
65
64
|
}
|
|
66
|
-
async getSharings(transaction, workflowId, relations = ['shared']) {
|
|
67
|
-
var _a;
|
|
68
|
-
const workflow = await transaction.findOne(WorkflowEntity_1.WorkflowEntity, {
|
|
69
|
-
where: { id: workflowId },
|
|
70
|
-
relations,
|
|
71
|
-
});
|
|
72
|
-
return (_a = workflow === null || workflow === void 0 ? void 0 : workflow.shared) !== null && _a !== void 0 ? _a : [];
|
|
73
|
-
}
|
|
74
|
-
async pruneSharings(transaction, workflowId, userIds) {
|
|
75
|
-
return await transaction.delete(SharedWorkflow_1.SharedWorkflow, {
|
|
76
|
-
workflowId,
|
|
77
|
-
userId: (0, typeorm_1.Not)((0, typeorm_1.In)(userIds)),
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
65
|
async updateWorkflowTriggerCount(id, triggerCount) {
|
|
81
66
|
const qb = this.createQueryBuilder('workflow');
|
|
82
67
|
return await qb
|
|
@@ -94,14 +79,18 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
94
79
|
.execute();
|
|
95
80
|
}
|
|
96
81
|
async getMany(sharedWorkflowIds, options) {
|
|
97
|
-
var _a, _b, _c, _d;
|
|
82
|
+
var _a, _b, _c, _d, _e;
|
|
98
83
|
if (sharedWorkflowIds.length === 0)
|
|
99
84
|
return { workflows: [], count: 0 };
|
|
85
|
+
if (typeof ((_a = options === null || options === void 0 ? void 0 : options.filter) === null || _a === void 0 ? void 0 : _a.projectId) === 'string' && options.filter.projectId !== '') {
|
|
86
|
+
options.filter.shared = { projectId: options.filter.projectId };
|
|
87
|
+
delete options.filter.projectId;
|
|
88
|
+
}
|
|
100
89
|
const where = {
|
|
101
90
|
...options === null || options === void 0 ? void 0 : options.filter,
|
|
102
91
|
id: (0, typeorm_1.In)(sharedWorkflowIds),
|
|
103
92
|
};
|
|
104
|
-
const reqTags = (
|
|
93
|
+
const reqTags = (_b = options === null || options === void 0 ? void 0 : options.filter) === null || _b === void 0 ? void 0 : _b.tags;
|
|
105
94
|
if ((0, utils_1.isStringArray)(reqTags)) {
|
|
106
95
|
where.tags = reqTags.map((tag) => ({ name: tag }));
|
|
107
96
|
}
|
|
@@ -113,20 +102,20 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
113
102
|
createdAt: true,
|
|
114
103
|
updatedAt: true,
|
|
115
104
|
versionId: true,
|
|
116
|
-
shared: {
|
|
105
|
+
shared: { role: true },
|
|
117
106
|
};
|
|
118
107
|
select === null || select === void 0 ? true : delete select.ownedBy;
|
|
119
108
|
const relations = [];
|
|
120
109
|
const areTagsEnabled = !config_1.default.getEnv('workflowTagsDisabled');
|
|
121
110
|
const isDefaultSelect = (options === null || options === void 0 ? void 0 : options.select) === undefined;
|
|
122
|
-
const areTagsRequested = isDefaultSelect || ((
|
|
123
|
-
const isOwnedByIncluded = isDefaultSelect || ((
|
|
111
|
+
const areTagsRequested = isDefaultSelect || ((_c = options === null || options === void 0 ? void 0 : options.select) === null || _c === void 0 ? void 0 : _c.tags) === true;
|
|
112
|
+
const isOwnedByIncluded = isDefaultSelect || ((_d = options === null || options === void 0 ? void 0 : options.select) === null || _d === void 0 ? void 0 : _d.ownedBy) === true;
|
|
124
113
|
if (areTagsEnabled && areTagsRequested) {
|
|
125
114
|
relations.push('tags');
|
|
126
115
|
select.tags = { id: true, name: true };
|
|
127
116
|
}
|
|
128
117
|
if (isOwnedByIncluded)
|
|
129
|
-
relations.push('shared', 'shared.
|
|
118
|
+
relations.push('shared', 'shared.project');
|
|
130
119
|
if (typeof where.name === 'string' && where.name !== '') {
|
|
131
120
|
where.name = (0, typeorm_1.Like)(`%${where.name}%`);
|
|
132
121
|
}
|
|
@@ -134,7 +123,7 @@ let WorkflowRepository = class WorkflowRepository extends typeorm_1.Repository {
|
|
|
134
123
|
select: { ...select, id: true },
|
|
135
124
|
where,
|
|
136
125
|
};
|
|
137
|
-
if (isDefaultSelect || ((
|
|
126
|
+
if (isDefaultSelect || ((_e = options === null || options === void 0 ? void 0 : options.select) === null || _e === void 0 ? void 0 : _e.updatedAt) === true) {
|
|
138
127
|
findManyOptions.order = { updatedAt: 'ASC' };
|
|
139
128
|
}
|
|
140
129
|
if (relations.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflow.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"workflow.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflow.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,6 @@ const typedi_1 = require("typedi");
|
|
|
17
17
|
const typeorm_1 = require("@n8n/typeorm");
|
|
18
18
|
const config_1 = __importDefault(require("../../config"));
|
|
19
19
|
const WorkflowStatistics_1 = require("../entities/WorkflowStatistics");
|
|
20
|
-
const WorkflowEntity_1 = require("../../databases/entities/WorkflowEntity");
|
|
21
|
-
const SharedWorkflow_1 = require("../../databases/entities/SharedWorkflow");
|
|
22
20
|
let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends typeorm_1.Repository {
|
|
23
21
|
constructor(dataSource) {
|
|
24
22
|
super(WorkflowStatistics_1.WorkflowStatistics, dataSource.manager);
|
|
@@ -89,15 +87,19 @@ let WorkflowStatisticsRepository = class WorkflowStatisticsRepository extends ty
|
|
|
89
87
|
}
|
|
90
88
|
}
|
|
91
89
|
async queryNumWorkflowsUserHasWithFiveOrMoreProdExecs(userId) {
|
|
92
|
-
return await this.
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
90
|
+
return await this.count({
|
|
91
|
+
where: {
|
|
92
|
+
workflow: {
|
|
93
|
+
shared: {
|
|
94
|
+
role: 'workflow:owner',
|
|
95
|
+
project: { projectRelations: { userId, role: 'project:personalOwner' } },
|
|
96
|
+
},
|
|
97
|
+
active: true,
|
|
98
|
+
},
|
|
99
|
+
name: "production_success",
|
|
100
|
+
count: (0, typeorm_1.MoreThanOrEqual)(5),
|
|
101
|
+
},
|
|
102
|
+
});
|
|
101
103
|
}
|
|
102
104
|
};
|
|
103
105
|
exports.WorkflowStatisticsRepository = WorkflowStatisticsRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflowStatistics.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflowStatistics.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"workflowStatistics.repository.js","sourceRoot":"","sources":["../../../src/databases/repositories/workflowStatistics.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm';
|
|
2
|
+
import { User } from '../entities/User';
|
|
3
|
+
export declare class UserSubscriber implements EntitySubscriberInterface<User> {
|
|
4
|
+
listenTo(): typeof User;
|
|
5
|
+
afterUpdate(event: UpdateEvent<User>): Promise<void>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.UserSubscriber = void 0;
|
|
10
|
+
const typedi_1 = require("typedi");
|
|
11
|
+
const typeorm_1 = require("@n8n/typeorm");
|
|
12
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
13
|
+
const Logger_1 = require("../../Logger");
|
|
14
|
+
const Project_1 = require("../entities/Project");
|
|
15
|
+
const User_1 = require("../entities/User");
|
|
16
|
+
const user_repository_1 = require("../repositories/user.repository");
|
|
17
|
+
let UserSubscriber = class UserSubscriber {
|
|
18
|
+
listenTo() {
|
|
19
|
+
return User_1.User;
|
|
20
|
+
}
|
|
21
|
+
async afterUpdate(event) {
|
|
22
|
+
if (event.entity) {
|
|
23
|
+
const newUserData = event.entity;
|
|
24
|
+
if (event.databaseEntity) {
|
|
25
|
+
const fields = event.updatedColumns.map((c) => c.propertyName);
|
|
26
|
+
if (fields.includes('firstName') ||
|
|
27
|
+
fields.includes('lastName') ||
|
|
28
|
+
fields.includes('email')) {
|
|
29
|
+
const oldUser = event.databaseEntity;
|
|
30
|
+
const userEntity = newUserData instanceof User_1.User
|
|
31
|
+
? newUserData
|
|
32
|
+
: typedi_1.Container.get(user_repository_1.UserRepository).create(newUserData);
|
|
33
|
+
const projectName = userEntity.createPersonalProjectName();
|
|
34
|
+
const project = await event.manager.findOneBy(Project_1.Project, {
|
|
35
|
+
type: 'personal',
|
|
36
|
+
projectRelations: { userId: oldUser.id },
|
|
37
|
+
});
|
|
38
|
+
if (!project) {
|
|
39
|
+
const message = "Could not update the personal project's name";
|
|
40
|
+
typedi_1.Container.get(Logger_1.Logger).warn(message, event.entity);
|
|
41
|
+
const exception = new n8n_workflow_1.ApplicationError(message);
|
|
42
|
+
n8n_workflow_1.ErrorReporterProxy.warn(exception, event.entity);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
project.name = projectName;
|
|
46
|
+
await event.manager.save(Project_1.Project, project);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (event.entity.firstName || event.entity.lastName || event.entity.email) {
|
|
51
|
+
const message = "Could not update the personal project's name";
|
|
52
|
+
typedi_1.Container.get(Logger_1.Logger).warn(message, event.entity);
|
|
53
|
+
const exception = new n8n_workflow_1.ApplicationError(message);
|
|
54
|
+
n8n_workflow_1.ErrorReporterProxy.warn(exception, event.entity);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.UserSubscriber = UserSubscriber;
|
|
61
|
+
exports.UserSubscriber = UserSubscriber = __decorate([
|
|
62
|
+
(0, typeorm_1.EventSubscriber)()
|
|
63
|
+
], UserSubscriber);
|
|
64
|
+
//# sourceMappingURL=UserSubscriber.js.map
|