n8n 0.167.0 → 0.168.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/commands/execute.js +3 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/executeBatch.d.ts +2 -0
- package/dist/commands/executeBatch.js +3 -0
- package/dist/commands/executeBatch.js.map +1 -1
- package/dist/commands/import/credentials.d.ts +10 -0
- package/dist/commands/import/credentials.js +87 -26
- package/dist/commands/import/credentials.js.map +1 -1
- package/dist/commands/import/workflow.d.ts +11 -1
- package/dist/commands/import/workflow.js +109 -48
- package/dist/commands/import/workflow.js.map +1 -1
- package/dist/commands/start.js +25 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/user-management/reset.d.ts +7 -0
- package/dist/commands/user-management/reset.js +66 -0
- package/dist/commands/user-management/reset.js.map +1 -0
- package/dist/commands/worker.js +4 -1
- package/dist/commands/worker.js.map +1 -1
- package/dist/config/index.d.ts +23 -0
- package/dist/config/index.js +92 -4
- package/dist/config/index.js.map +1 -1
- package/dist/src/ActiveWorkflowRunner.d.ts +2 -1
- package/dist/src/ActiveWorkflowRunner.js +44 -24
- package/dist/src/ActiveWorkflowRunner.js.map +1 -1
- package/dist/src/CredentialsHelper.d.ts +10 -2
- package/dist/src/CredentialsHelper.js +40 -11
- package/dist/src/CredentialsHelper.js.map +1 -1
- package/dist/src/Db.d.ts +4 -1
- package/dist/src/Db.js +90 -66
- package/dist/src/Db.js.map +1 -1
- package/dist/src/GenericHelpers.d.ts +6 -0
- package/dist/src/GenericHelpers.js +18 -1
- package/dist/src/GenericHelpers.js.map +1 -1
- package/dist/src/Interfaces.d.ts +74 -9
- package/dist/src/InternalHooks.d.ts +42 -6
- package/dist/src/InternalHooks.js +54 -13
- package/dist/src/InternalHooks.js.map +1 -1
- package/dist/src/ResponseHelper.js +5 -0
- package/dist/src/ResponseHelper.js.map +1 -1
- package/dist/src/Server.d.ts +2 -0
- package/dist/src/Server.js +585 -458
- package/dist/src/Server.js.map +1 -1
- package/dist/src/TagHelpers.d.ts +3 -3
- package/dist/src/TagHelpers.js +5 -24
- package/dist/src/TagHelpers.js.map +1 -1
- package/dist/src/UserManagement/Interfaces.d.ts +34 -0
- package/dist/src/UserManagement/Interfaces.js +3 -0
- package/dist/src/UserManagement/Interfaces.js.map +1 -0
- package/dist/src/UserManagement/UserManagementHelper.d.ts +17 -0
- package/dist/src/UserManagement/UserManagementHelper.js +158 -0
- package/dist/src/UserManagement/UserManagementHelper.js.map +1 -0
- package/dist/src/UserManagement/auth/jwt.d.ts +7 -0
- package/dist/src/UserManagement/auth/jwt.js +57 -0
- package/dist/src/UserManagement/auth/jwt.js.map +1 -0
- package/dist/src/UserManagement/email/Interfaces.d.ts +29 -0
- package/dist/src/UserManagement/email/Interfaces.js +3 -0
- package/dist/src/UserManagement/email/Interfaces.js.map +1 -0
- package/dist/src/UserManagement/email/NodeMailer.d.ts +7 -0
- package/dist/src/UserManagement/email/NodeMailer.js +67 -0
- package/dist/src/UserManagement/email/NodeMailer.js.map +1 -0
- package/dist/src/UserManagement/email/UserManagementMailer.d.ts +9 -0
- package/dist/src/UserManagement/email/UserManagementMailer.js +77 -0
- package/dist/src/UserManagement/email/UserManagementMailer.js.map +1 -0
- package/dist/src/UserManagement/email/index.d.ts +2 -0
- package/dist/src/UserManagement/email/index.js +7 -0
- package/dist/src/UserManagement/email/index.js.map +1 -0
- package/dist/src/UserManagement/index.d.ts +4 -0
- package/dist/src/UserManagement/index.js +6 -0
- package/dist/src/UserManagement/index.js.map +1 -0
- package/dist/src/UserManagement/routes/auth.d.ts +2 -0
- package/dist/src/UserManagement/routes/auth.js +74 -0
- package/dist/src/UserManagement/routes/auth.js.map +1 -0
- package/dist/src/UserManagement/routes/index.d.ts +2 -0
- package/dist/src/UserManagement/routes/index.js +100 -0
- package/dist/src/UserManagement/routes/index.js.map +1 -0
- package/dist/src/UserManagement/routes/me.d.ts +2 -0
- package/dist/src/UserManagement/routes/me.js +85 -0
- package/dist/src/UserManagement/routes/me.js.map +1 -0
- package/dist/src/UserManagement/routes/owner.d.ts +2 -0
- package/dist/src/UserManagement/routes/owner.js +68 -0
- package/dist/src/UserManagement/routes/owner.js.map +1 -0
- package/dist/src/UserManagement/routes/passwordReset.d.ts +2 -0
- package/dist/src/UserManagement/routes/passwordReset.js +129 -0
- package/dist/src/UserManagement/routes/passwordReset.js.map +1 -0
- package/dist/src/UserManagement/routes/users.d.ts +2 -0
- package/dist/src/UserManagement/routes/users.js +334 -0
- package/dist/src/UserManagement/routes/users.js.map +1 -0
- package/dist/src/WaitTracker.js +6 -0
- package/dist/src/WaitTracker.js.map +1 -1
- package/dist/src/WaitingWebhooks.js +9 -1
- package/dist/src/WaitingWebhooks.js.map +1 -1
- package/dist/src/WebhookHelpers.js +17 -1
- package/dist/src/WebhookHelpers.js.map +1 -1
- package/dist/src/WorkflowExecuteAdditionalData.d.ts +3 -3
- package/dist/src/WorkflowExecuteAdditionalData.js +41 -13
- package/dist/src/WorkflowExecuteAdditionalData.js.map +1 -1
- package/dist/src/WorkflowHelpers.d.ts +9 -10
- package/dist/src/WorkflowHelpers.js +48 -17
- package/dist/src/WorkflowHelpers.js.map +1 -1
- package/dist/src/WorkflowRunner.js +4 -2
- package/dist/src/WorkflowRunner.js.map +1 -1
- package/dist/src/WorkflowRunnerProcess.js +7 -4
- package/dist/src/WorkflowRunnerProcess.js.map +1 -1
- package/dist/src/api/credentials.api.d.ts +1 -0
- package/dist/src/api/credentials.api.js +222 -0
- package/dist/src/api/credentials.api.js.map +1 -0
- package/dist/src/constants.d.ts +5 -0
- package/dist/src/constants.js +9 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/databases/entities/CredentialsEntity.d.ts +2 -0
- package/dist/src/databases/entities/CredentialsEntity.js +13 -2
- package/dist/src/databases/entities/CredentialsEntity.js.map +1 -1
- package/dist/src/databases/entities/Role.d.ts +16 -0
- package/dist/src/databases/entities/Role.js +87 -0
- package/dist/src/databases/entities/Role.js.map +1 -0
- package/dist/src/databases/entities/Settings.d.ts +6 -0
- package/dist/src/databases/entities/Settings.js +32 -0
- package/dist/src/databases/entities/Settings.js.map +1 -0
- package/dist/src/databases/entities/SharedCredentials.d.ts +13 -0
- package/dist/src/databases/entities/SharedCredentials.js +83 -0
- package/dist/src/databases/entities/SharedCredentials.js.map +1 -0
- package/dist/src/databases/entities/SharedWorkflow.d.ts +13 -0
- package/dist/src/databases/entities/SharedWorkflow.js +83 -0
- package/dist/src/databases/entities/SharedWorkflow.js.map +1 -0
- package/dist/src/databases/entities/TagEntity.js +6 -2
- package/dist/src/databases/entities/TagEntity.js.map +1 -1
- package/dist/src/databases/entities/User.d.ts +24 -0
- package/dist/src/databases/entities/User.js +145 -0
- package/dist/src/databases/entities/User.js.map +1 -0
- package/dist/src/databases/entities/WorkflowEntity.d.ts +2 -0
- package/dist/src/databases/entities/WorkflowEntity.js +8 -1
- package/dist/src/databases/entities/WorkflowEntity.js.map +1 -1
- package/dist/src/databases/entities/index.d.ts +10 -0
- package/dist/src/databases/entities/index.js +10 -0
- package/dist/src/databases/entities/index.js.map +1 -1
- package/dist/src/databases/mysqldb/migrations/1626183952959-AddWaitColumn.js +0 -1
- package/dist/src/databases/mysqldb/migrations/1626183952959-AddWaitColumn.js.map +1 -1
- package/dist/src/databases/mysqldb/migrations/1630451444017-UpdateWorkflowCredentials.js +0 -3
- package/dist/src/databases/mysqldb/migrations/1630451444017-UpdateWorkflowCredentials.js.map +1 -1
- package/dist/src/databases/mysqldb/migrations/1644424784709-AddExecutionEntityIndexes.js +21 -8
- package/dist/src/databases/mysqldb/migrations/1644424784709-AddExecutionEntityIndexes.js.map +1 -1
- package/dist/src/databases/mysqldb/migrations/1646992772331-CreateUserManagement.d.ts +6 -0
- package/dist/src/databases/mysqldb/migrations/1646992772331-CreateUserManagement.js +100 -0
- package/dist/src/databases/mysqldb/migrations/1646992772331-CreateUserManagement.js.map +1 -0
- package/dist/src/databases/mysqldb/migrations/index.js +2 -0
- package/dist/src/databases/mysqldb/migrations/index.js.map +1 -1
- package/dist/src/databases/postgresdb/migrations/1620824779533-UniqueWorkflowNames.d.ts +1 -1
- package/dist/src/databases/postgresdb/migrations/1620824779533-UniqueWorkflowNames.js +1 -1
- package/dist/src/databases/postgresdb/migrations/1620824779533-UniqueWorkflowNames.js.map +1 -1
- package/dist/src/databases/postgresdb/migrations/1626176912946-AddwaitTill.js +0 -1
- package/dist/src/databases/postgresdb/migrations/1626176912946-AddwaitTill.js.map +1 -1
- package/dist/src/databases/postgresdb/migrations/1630419189837-UpdateWorkflowCredentials.js +0 -3
- package/dist/src/databases/postgresdb/migrations/1630419189837-UpdateWorkflowCredentials.js.map +1 -1
- package/dist/src/databases/postgresdb/migrations/1644422880309-AddExecutionEntityIndexes.js +16 -17
- package/dist/src/databases/postgresdb/migrations/1644422880309-AddExecutionEntityIndexes.js.map +1 -1
- package/dist/src/databases/postgresdb/migrations/1646992772331-CreateUserManagement.d.ts +6 -0
- package/dist/src/databases/postgresdb/migrations/1646992772331-CreateUserManagement.js +106 -0
- package/dist/src/databases/postgresdb/migrations/1646992772331-CreateUserManagement.js.map +1 -0
- package/dist/src/databases/postgresdb/migrations/index.js +2 -0
- package/dist/src/databases/postgresdb/migrations/index.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1588102412422-InitialMigration.js +3 -0
- package/dist/src/databases/sqlite/migrations/1588102412422-InitialMigration.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1592445003908-WebhookModel.js +3 -0
- package/dist/src/databases/sqlite/migrations/1592445003908-WebhookModel.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1594825041918-CreateIndexStoppedAt.d.ts +1 -1
- package/dist/src/databases/sqlite/migrations/1594825041918-CreateIndexStoppedAt.js +3 -0
- package/dist/src/databases/sqlite/migrations/1594825041918-CreateIndexStoppedAt.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1607431743769-MakeStoppedAtNullable.d.ts +2 -1
- package/dist/src/databases/sqlite/migrations/1607431743769-MakeStoppedAtNullable.js +6 -0
- package/dist/src/databases/sqlite/migrations/1607431743769-MakeStoppedAtNullable.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1611071044839-AddWebhookId.d.ts +1 -1
- package/dist/src/databases/sqlite/migrations/1611071044839-AddWebhookId.js +3 -0
- package/dist/src/databases/sqlite/migrations/1611071044839-AddWebhookId.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1617213344594-CreateTagEntity.d.ts +1 -1
- package/dist/src/databases/sqlite/migrations/1617213344594-CreateTagEntity.js +3 -0
- package/dist/src/databases/sqlite/migrations/1617213344594-CreateTagEntity.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1620821879465-UniqueWorkflowNames.d.ts +1 -1
- package/dist/src/databases/sqlite/migrations/1620821879465-UniqueWorkflowNames.js +3 -0
- package/dist/src/databases/sqlite/migrations/1620821879465-UniqueWorkflowNames.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1621707690587-AddWaitColumn.js +3 -1
- package/dist/src/databases/sqlite/migrations/1621707690587-AddWaitColumn.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1630330987096-UpdateWorkflowCredentials.js +3 -3
- package/dist/src/databases/sqlite/migrations/1630330987096-UpdateWorkflowCredentials.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1644421939510-AddExecutionEntityIndexes.js +17 -13
- package/dist/src/databases/sqlite/migrations/1644421939510-AddExecutionEntityIndexes.js.map +1 -1
- package/dist/src/databases/sqlite/migrations/1646992772331-CreateUserManagement.d.ts +6 -0
- package/dist/src/databases/sqlite/migrations/1646992772331-CreateUserManagement.js +73 -0
- package/dist/src/databases/sqlite/migrations/1646992772331-CreateUserManagement.js.map +1 -0
- package/dist/src/databases/sqlite/migrations/index.d.ts +3 -2
- package/dist/src/databases/sqlite/migrations/index.js +4 -1
- package/dist/src/databases/sqlite/migrations/index.js.map +1 -1
- package/dist/src/databases/utils/customValidators.d.ts +1 -0
- package/dist/src/databases/utils/customValidators.js +22 -0
- package/dist/src/databases/utils/customValidators.js.map +1 -0
- package/dist/src/databases/utils/migrationHelpers.d.ts +3 -0
- package/dist/src/databases/utils/migrationHelpers.js +60 -0
- package/dist/src/databases/utils/migrationHelpers.js.map +1 -0
- package/dist/src/databases/utils/transformers.d.ts +9 -0
- package/dist/src/databases/utils/transformers.js +16 -0
- package/dist/src/databases/utils/transformers.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +4 -1
- package/dist/src/telemetry/index.js +4 -2
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/test/{CredentialsHelper.test.d.ts → integration/auth.endpoints.test.d.ts} +0 -0
- package/dist/test/integration/auth.endpoints.test.js +99 -0
- package/dist/test/integration/auth.endpoints.test.js.map +1 -0
- package/dist/test/integration/auth.middleware.test.d.ts +1 -0
- package/dist/test/integration/auth.middleware.test.js +46 -0
- package/dist/test/integration/auth.middleware.test.js.map +1 -0
- package/dist/test/integration/credentials.api.test.d.ts +1 -0
- package/dist/test/integration/credentials.api.test.js +401 -0
- package/dist/test/integration/credentials.api.test.js.map +1 -0
- package/dist/test/integration/me.endpoints.test.d.ts +1 -0
- package/dist/test/integration/me.endpoints.test.js +383 -0
- package/dist/test/integration/me.endpoints.test.js.map +1 -0
- package/dist/test/integration/owner.endpoints.test.d.ts +1 -0
- package/dist/test/integration/owner.endpoints.test.js +125 -0
- package/dist/test/integration/owner.endpoints.test.js.map +1 -0
- package/dist/test/integration/passwordReset.endpoints.test.d.ts +1 -0
- package/dist/test/integration/passwordReset.endpoints.test.js +221 -0
- package/dist/test/integration/passwordReset.endpoints.test.js.map +1 -0
- package/dist/test/integration/shared/constants.d.ts +16 -0
- package/dist/test/integration/shared/constants.js +41 -0
- package/dist/test/integration/shared/constants.js.map +1 -0
- package/dist/test/integration/shared/random.d.ts +5 -0
- package/dist/test/integration/shared/random.js +34 -0
- package/dist/test/integration/shared/random.js.map +1 -0
- package/dist/test/integration/shared/testDb.d.ts +47 -0
- package/dist/test/integration/shared/testDb.js +280 -0
- package/dist/test/integration/shared/testDb.js.map +1 -0
- package/dist/test/integration/shared/utils.d.ts +20 -0
- package/dist/test/integration/shared/utils.js +132 -0
- package/dist/test/integration/shared/utils.js.map +1 -0
- package/dist/test/integration/users.endpoints.test.d.ts +1 -0
- package/dist/test/integration/users.endpoints.test.js +420 -0
- package/dist/test/integration/users.endpoints.test.js.map +1 -0
- package/dist/test/setup.d.ts +1 -0
- package/dist/test/setup.js +27 -0
- package/dist/test/setup.js.map +1 -0
- package/dist/test/teardown.d.ts +2 -0
- package/dist/test/teardown.js +33 -0
- package/dist/test/teardown.js.map +1 -0
- package/dist/test/unit/CredentialsHelper.test.d.ts +1 -0
- package/dist/test/{CredentialsHelper.test.js → unit/CredentialsHelper.test.js} +1 -1
- package/dist/test/unit/CredentialsHelper.test.js.map +1 -0
- package/dist/test/{Helpers.d.ts → unit/Helpers.d.ts} +0 -0
- package/dist/test/{Helpers.js → unit/Helpers.js} +0 -0
- package/dist/test/unit/Helpers.js.map +1 -0
- package/oclif.manifest.json +1 -1
- package/package.json +29 -28
- package/dist/src/PersonalizationSurvey.d.ts +0 -3
- package/dist/src/PersonalizationSurvey.js +0 -48
- package/dist/src/PersonalizationSurvey.js.map +0 -1
- package/dist/test/CredentialsHelper.test.js.map +0 -1
- package/dist/test/Helpers.js.map +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ownerNamespace = void 0;
|
|
4
|
+
const bcryptjs_1 = require("bcryptjs");
|
|
5
|
+
const validator_1 = require("validator");
|
|
6
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
7
|
+
const __1 = require("../..");
|
|
8
|
+
const config = require("../../../config");
|
|
9
|
+
const GenericHelpers_1 = require("../../GenericHelpers");
|
|
10
|
+
const jwt_1 = require("../auth/jwt");
|
|
11
|
+
const UserManagementHelper_1 = require("../UserManagementHelper");
|
|
12
|
+
function ownerNamespace() {
|
|
13
|
+
this.app.post(`/${this.restEndpoint}/owner`, __1.ResponseHelper.send(async (req, res) => {
|
|
14
|
+
const { email, firstName, lastName, password } = req.body;
|
|
15
|
+
const { id: userId } = req.user;
|
|
16
|
+
if (config.get('userManagement.isInstanceOwnerSetUp')) {
|
|
17
|
+
n8n_workflow_1.LoggerProxy.debug('Request to claim instance ownership failed because instance owner already exists', {
|
|
18
|
+
userId,
|
|
19
|
+
});
|
|
20
|
+
throw new __1.ResponseHelper.ResponseError('Invalid request', undefined, 400);
|
|
21
|
+
}
|
|
22
|
+
if (!email || !validator_1.default.isEmail(email)) {
|
|
23
|
+
n8n_workflow_1.LoggerProxy.debug('Request to claim instance ownership failed because of invalid email', {
|
|
24
|
+
userId,
|
|
25
|
+
invalidEmail: email,
|
|
26
|
+
});
|
|
27
|
+
throw new __1.ResponseHelper.ResponseError('Invalid email address', undefined, 400);
|
|
28
|
+
}
|
|
29
|
+
const validPassword = UserManagementHelper_1.validatePassword(password);
|
|
30
|
+
if (!firstName || !lastName) {
|
|
31
|
+
n8n_workflow_1.LoggerProxy.debug('Request to claim instance ownership failed because of missing first name or last name in payload', { userId, payload: req.body });
|
|
32
|
+
throw new __1.ResponseHelper.ResponseError('First and last names are mandatory', undefined, 400);
|
|
33
|
+
}
|
|
34
|
+
let owner = await __1.Db.collections.User.findOne(userId, {
|
|
35
|
+
relations: ['globalRole'],
|
|
36
|
+
});
|
|
37
|
+
if (!owner || (owner.globalRole.scope === 'global' && owner.globalRole.name !== 'owner')) {
|
|
38
|
+
n8n_workflow_1.LoggerProxy.debug('Request to claim instance ownership failed because user shell does not exist or has wrong role!', {
|
|
39
|
+
userId,
|
|
40
|
+
});
|
|
41
|
+
throw new __1.ResponseHelper.ResponseError('Invalid request', undefined, 400);
|
|
42
|
+
}
|
|
43
|
+
owner = Object.assign(owner, {
|
|
44
|
+
email,
|
|
45
|
+
firstName,
|
|
46
|
+
lastName,
|
|
47
|
+
password: bcryptjs_1.hashSync(validPassword, bcryptjs_1.genSaltSync(10)),
|
|
48
|
+
});
|
|
49
|
+
await GenericHelpers_1.validateEntity(owner);
|
|
50
|
+
owner = await __1.Db.collections.User.save(owner);
|
|
51
|
+
n8n_workflow_1.LoggerProxy.info('Owner was set up successfully', { userId: req.user.id });
|
|
52
|
+
await __1.Db.collections.Settings.update({ key: 'userManagement.isInstanceOwnerSetUp' }, { value: JSON.stringify(true) });
|
|
53
|
+
config.set('userManagement.isInstanceOwnerSetUp', true);
|
|
54
|
+
n8n_workflow_1.LoggerProxy.debug('Setting isInstanceOwnerSetUp updated successfully', { userId: req.user.id });
|
|
55
|
+
await jwt_1.issueCookie(res, owner);
|
|
56
|
+
void __1.InternalHooksManager.getInstance().onInstanceOwnerSetup({
|
|
57
|
+
user_id: userId,
|
|
58
|
+
});
|
|
59
|
+
return UserManagementHelper_1.sanitizeUser(owner);
|
|
60
|
+
}));
|
|
61
|
+
this.app.post(`/${this.restEndpoint}/owner/skip-setup`, __1.ResponseHelper.send(async (_req, _res) => {
|
|
62
|
+
await __1.Db.collections.Settings.update({ key: 'userManagement.skipInstanceOwnerSetup' }, { value: JSON.stringify(true) });
|
|
63
|
+
config.set('userManagement.skipInstanceOwnerSetup', true);
|
|
64
|
+
return { success: true };
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
exports.ownerNamespace = ownerNamespace;
|
|
68
|
+
//# sourceMappingURL=owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner.js","sourceRoot":"","sources":["../../../../src/UserManagement/routes/owner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.passwordResetNamespace = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const url_1 = require("url");
|
|
6
|
+
const bcryptjs_1 = require("bcryptjs");
|
|
7
|
+
const validator_1 = require("validator");
|
|
8
|
+
const typeorm_1 = require("typeorm");
|
|
9
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
10
|
+
const __1 = require("../..");
|
|
11
|
+
const UserManagementHelper_1 = require("../UserManagementHelper");
|
|
12
|
+
const UserManagementMailer = require("../email");
|
|
13
|
+
const jwt_1 = require("../auth/jwt");
|
|
14
|
+
const config = require("../../../config");
|
|
15
|
+
function passwordResetNamespace() {
|
|
16
|
+
this.app.post(`/${this.restEndpoint}/forgot-password`, __1.ResponseHelper.send(async (req) => {
|
|
17
|
+
if (config.get('userManagement.emails.mode') === '') {
|
|
18
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send password reset email failed because emailing was not set up');
|
|
19
|
+
throw new __1.ResponseHelper.ResponseError('Email sending must be set up in order to request a password reset email', undefined, 500);
|
|
20
|
+
}
|
|
21
|
+
const { email } = req.body;
|
|
22
|
+
if (!email) {
|
|
23
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send password reset email failed because of missing email in payload', { payload: req.body });
|
|
24
|
+
throw new __1.ResponseHelper.ResponseError('Email is mandatory', undefined, 400);
|
|
25
|
+
}
|
|
26
|
+
if (!validator_1.default.isEmail(email)) {
|
|
27
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send password reset email failed because of invalid email in payload', { invalidEmail: email });
|
|
28
|
+
throw new __1.ResponseHelper.ResponseError('Invalid email address', undefined, 400);
|
|
29
|
+
}
|
|
30
|
+
const user = await __1.Db.collections.User.findOne({ email, password: typeorm_1.Not(typeorm_1.IsNull()) });
|
|
31
|
+
if (!user || !user.password) {
|
|
32
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send password reset email failed because no user was found for the provided email', { invalidEmail: email });
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
user.resetPasswordToken = uuid_1.v4();
|
|
36
|
+
const { id, firstName, lastName, resetPasswordToken } = user;
|
|
37
|
+
const resetPasswordTokenExpiration = Math.floor(Date.now() / 1000) + 7200;
|
|
38
|
+
await __1.Db.collections.User.update(id, { resetPasswordToken, resetPasswordTokenExpiration });
|
|
39
|
+
const baseUrl = UserManagementHelper_1.getInstanceBaseUrl();
|
|
40
|
+
const url = new url_1.URL(`${baseUrl}/change-password`);
|
|
41
|
+
url.searchParams.append('userId', id);
|
|
42
|
+
url.searchParams.append('token', resetPasswordToken);
|
|
43
|
+
try {
|
|
44
|
+
const mailer = await UserManagementMailer.getInstance();
|
|
45
|
+
await mailer.passwordReset({
|
|
46
|
+
email,
|
|
47
|
+
firstName,
|
|
48
|
+
lastName,
|
|
49
|
+
passwordResetUrl: url.toString(),
|
|
50
|
+
domain: baseUrl,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
void __1.InternalHooksManager.getInstance().onEmailFailed({
|
|
55
|
+
user_id: user.id,
|
|
56
|
+
message_type: 'Reset password',
|
|
57
|
+
});
|
|
58
|
+
if (error instanceof Error) {
|
|
59
|
+
throw new __1.ResponseHelper.ResponseError(`Please contact your administrator: ${error.message}`, undefined, 500);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
n8n_workflow_1.LoggerProxy.info('Sent password reset email successfully', { userId: user.id, email });
|
|
63
|
+
void __1.InternalHooksManager.getInstance().onUserTransactionalEmail({
|
|
64
|
+
user_id: id,
|
|
65
|
+
message_type: 'Reset password',
|
|
66
|
+
});
|
|
67
|
+
void __1.InternalHooksManager.getInstance().onUserPasswordResetRequestClick({
|
|
68
|
+
user_id: id,
|
|
69
|
+
});
|
|
70
|
+
}));
|
|
71
|
+
this.app.get(`/${this.restEndpoint}/resolve-password-token`, __1.ResponseHelper.send(async (req) => {
|
|
72
|
+
const { token: resetPasswordToken, userId: id } = req.query;
|
|
73
|
+
if (!resetPasswordToken || !id) {
|
|
74
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve password token failed because of missing password reset token or user ID in query string', {
|
|
75
|
+
queryString: req.query,
|
|
76
|
+
});
|
|
77
|
+
throw new __1.ResponseHelper.ResponseError('', undefined, 400);
|
|
78
|
+
}
|
|
79
|
+
const currentTimestamp = Math.floor(Date.now() / 1000);
|
|
80
|
+
const user = await __1.Db.collections.User.findOne({
|
|
81
|
+
id,
|
|
82
|
+
resetPasswordToken,
|
|
83
|
+
resetPasswordTokenExpiration: typeorm_1.MoreThanOrEqual(currentTimestamp),
|
|
84
|
+
});
|
|
85
|
+
if (!user) {
|
|
86
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve password token failed because no user was found for the provided user ID and reset password token', {
|
|
87
|
+
userId: id,
|
|
88
|
+
resetPasswordToken,
|
|
89
|
+
});
|
|
90
|
+
throw new __1.ResponseHelper.ResponseError('', undefined, 404);
|
|
91
|
+
}
|
|
92
|
+
n8n_workflow_1.LoggerProxy.info('Reset-password token resolved successfully', { userId: id });
|
|
93
|
+
void __1.InternalHooksManager.getInstance().onUserPasswordResetEmailClick({
|
|
94
|
+
user_id: id,
|
|
95
|
+
});
|
|
96
|
+
}));
|
|
97
|
+
this.app.post(`/${this.restEndpoint}/change-password`, __1.ResponseHelper.send(async (req, res) => {
|
|
98
|
+
const { token: resetPasswordToken, userId, password } = req.body;
|
|
99
|
+
if (!resetPasswordToken || !userId || !password) {
|
|
100
|
+
n8n_workflow_1.LoggerProxy.debug('Request to change password failed because of missing user ID or password or reset password token in payload', {
|
|
101
|
+
payload: req.body,
|
|
102
|
+
});
|
|
103
|
+
throw new __1.ResponseHelper.ResponseError('Missing user ID or password or reset password token', undefined, 400);
|
|
104
|
+
}
|
|
105
|
+
const validPassword = UserManagementHelper_1.validatePassword(password);
|
|
106
|
+
const currentTimestamp = Math.floor(Date.now() / 1000);
|
|
107
|
+
const user = await __1.Db.collections.User.findOne({
|
|
108
|
+
id: userId,
|
|
109
|
+
resetPasswordToken,
|
|
110
|
+
resetPasswordTokenExpiration: typeorm_1.MoreThanOrEqual(currentTimestamp),
|
|
111
|
+
});
|
|
112
|
+
if (!user) {
|
|
113
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve password token failed because no user was found for the provided user ID and reset password token', {
|
|
114
|
+
userId,
|
|
115
|
+
resetPasswordToken,
|
|
116
|
+
});
|
|
117
|
+
throw new __1.ResponseHelper.ResponseError('', undefined, 404);
|
|
118
|
+
}
|
|
119
|
+
await __1.Db.collections.User.update(userId, {
|
|
120
|
+
password: bcryptjs_1.hashSync(validPassword, bcryptjs_1.genSaltSync(10)),
|
|
121
|
+
resetPasswordToken: null,
|
|
122
|
+
resetPasswordTokenExpiration: null,
|
|
123
|
+
});
|
|
124
|
+
n8n_workflow_1.LoggerProxy.info('User password updated successfully', { userId });
|
|
125
|
+
await jwt_1.issueCookie(res, user);
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
exports.passwordResetNamespace = passwordResetNamespace;
|
|
129
|
+
//# sourceMappingURL=passwordReset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"passwordReset.js","sourceRoot":"","sources":["../../../../src/UserManagement/routes/passwordReset.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usersNamespace = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const bcryptjs_1 = require("bcryptjs");
|
|
6
|
+
const validator_1 = require("validator");
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
const __1 = require("../..");
|
|
9
|
+
const UserManagementHelper_1 = require("../UserManagementHelper");
|
|
10
|
+
const User_1 = require("../../databases/entities/User");
|
|
11
|
+
const SharedWorkflow_1 = require("../../databases/entities/SharedWorkflow");
|
|
12
|
+
const SharedCredentials_1 = require("../../databases/entities/SharedCredentials");
|
|
13
|
+
const UserManagementMailer = require("../email/UserManagementMailer");
|
|
14
|
+
const config = require("../../../config");
|
|
15
|
+
const jwt_1 = require("../auth/jwt");
|
|
16
|
+
function usersNamespace() {
|
|
17
|
+
this.app.post(`/${this.restEndpoint}/users`, __1.ResponseHelper.send(async (req) => {
|
|
18
|
+
if (config.get('userManagement.emails.mode') === '') {
|
|
19
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send email invite(s) to user(s) failed because emailing was not set up');
|
|
20
|
+
throw new __1.ResponseHelper.ResponseError('Email sending must be set up in order to request a password reset email', undefined, 500);
|
|
21
|
+
}
|
|
22
|
+
let mailer;
|
|
23
|
+
try {
|
|
24
|
+
mailer = await UserManagementMailer.getInstance();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error instanceof Error) {
|
|
28
|
+
throw new __1.ResponseHelper.ResponseError(`There is a problem with your SMTP setup! ${error.message}`, undefined, 500);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (config.get('userManagement.disabled')) {
|
|
32
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send email invite(s) to user(s) failed because user management is disabled');
|
|
33
|
+
throw new __1.ResponseHelper.ResponseError('User management is disabled');
|
|
34
|
+
}
|
|
35
|
+
if (!config.get('userManagement.isInstanceOwnerSetUp')) {
|
|
36
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send email invite(s) to user(s) failed because the owner account is not set up');
|
|
37
|
+
throw new __1.ResponseHelper.ResponseError('You must set up your own account before inviting others', undefined, 400);
|
|
38
|
+
}
|
|
39
|
+
if (!Array.isArray(req.body)) {
|
|
40
|
+
n8n_workflow_1.LoggerProxy.debug('Request to send email invite(s) to user(s) failed because the payload is not an array', {
|
|
41
|
+
payload: req.body,
|
|
42
|
+
});
|
|
43
|
+
throw new __1.ResponseHelper.ResponseError('Invalid payload', undefined, 400);
|
|
44
|
+
}
|
|
45
|
+
if (!req.body.length)
|
|
46
|
+
return [];
|
|
47
|
+
const createUsers = {};
|
|
48
|
+
req.body.forEach((invite) => {
|
|
49
|
+
if (typeof invite !== 'object' || !invite.email) {
|
|
50
|
+
throw new __1.ResponseHelper.ResponseError('Request to send email invite(s) to user(s) failed because the payload is not an array shaped Array<{ email: string }>', undefined, 400);
|
|
51
|
+
}
|
|
52
|
+
if (!validator_1.default.isEmail(invite.email)) {
|
|
53
|
+
n8n_workflow_1.LoggerProxy.debug('Invalid email in payload', { invalidEmail: invite.email });
|
|
54
|
+
throw new __1.ResponseHelper.ResponseError(`Request to send email invite(s) to user(s) failed because of an invalid email address: ${invite.email}`, undefined, 400);
|
|
55
|
+
}
|
|
56
|
+
createUsers[invite.email] = null;
|
|
57
|
+
});
|
|
58
|
+
const role = await __1.Db.collections.Role.findOne({ scope: 'global', name: 'member' });
|
|
59
|
+
if (!role) {
|
|
60
|
+
n8n_workflow_1.LoggerProxy.error('Request to send email invite(s) to user(s) failed because no global member role was found in database');
|
|
61
|
+
throw new __1.ResponseHelper.ResponseError('Members role not found in database - inconsistent state', undefined, 500);
|
|
62
|
+
}
|
|
63
|
+
const existingUsers = await __1.Db.collections.User.find({
|
|
64
|
+
where: { email: typeorm_1.In(Object.keys(createUsers)) },
|
|
65
|
+
});
|
|
66
|
+
existingUsers.forEach((user) => {
|
|
67
|
+
if (user.password) {
|
|
68
|
+
delete createUsers[user.email];
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
createUsers[user.email] = user.id;
|
|
72
|
+
});
|
|
73
|
+
const usersToSetUp = Object.keys(createUsers).filter((email) => createUsers[email] === null);
|
|
74
|
+
const total = usersToSetUp.length;
|
|
75
|
+
n8n_workflow_1.LoggerProxy.debug(total > 1 ? `Creating ${total} user shells...` : `Creating 1 user shell...`);
|
|
76
|
+
try {
|
|
77
|
+
await __1.Db.transaction(async (transactionManager) => {
|
|
78
|
+
return Promise.all(usersToSetUp.map(async (email) => {
|
|
79
|
+
const newUser = Object.assign(new User_1.User(), {
|
|
80
|
+
email,
|
|
81
|
+
globalRole: role,
|
|
82
|
+
});
|
|
83
|
+
const savedUser = await transactionManager.save(newUser);
|
|
84
|
+
createUsers[savedUser.email] = savedUser.id;
|
|
85
|
+
return savedUser;
|
|
86
|
+
}));
|
|
87
|
+
});
|
|
88
|
+
void __1.InternalHooksManager.getInstance().onUserInvite({
|
|
89
|
+
user_id: req.user.id,
|
|
90
|
+
target_user_id: Object.values(createUsers),
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
n8n_workflow_1.LoggerProxy.error('Failed to create user shells', { userShells: createUsers });
|
|
95
|
+
throw new __1.ResponseHelper.ResponseError('An error occurred during user creation');
|
|
96
|
+
}
|
|
97
|
+
n8n_workflow_1.LoggerProxy.info('Created user shell(s) successfully', { userId: req.user.id });
|
|
98
|
+
n8n_workflow_1.LoggerProxy.verbose(total > 1 ? `${total} user shells created` : `1 user shell created`, {
|
|
99
|
+
userShells: createUsers,
|
|
100
|
+
});
|
|
101
|
+
const baseUrl = UserManagementHelper_1.getInstanceBaseUrl();
|
|
102
|
+
const usersPendingSetup = Object.entries(createUsers).filter(([email, id]) => id && email);
|
|
103
|
+
const emailingResults = await Promise.all(usersPendingSetup.map(async ([email, id]) => {
|
|
104
|
+
const inviteAcceptUrl = `${baseUrl}/signup?inviterId=${req.user.id}&inviteeId=${id}`;
|
|
105
|
+
const result = await (mailer === null || mailer === void 0 ? void 0 : mailer.invite({
|
|
106
|
+
email,
|
|
107
|
+
inviteAcceptUrl,
|
|
108
|
+
domain: baseUrl,
|
|
109
|
+
}));
|
|
110
|
+
const resp = {
|
|
111
|
+
user: {
|
|
112
|
+
id,
|
|
113
|
+
email,
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
if (result === null || result === void 0 ? void 0 : result.success) {
|
|
117
|
+
void __1.InternalHooksManager.getInstance().onUserTransactionalEmail({
|
|
118
|
+
user_id: id,
|
|
119
|
+
message_type: 'New user invite',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
void __1.InternalHooksManager.getInstance().onEmailFailed({
|
|
124
|
+
user_id: req.user.id,
|
|
125
|
+
message_type: 'New user invite',
|
|
126
|
+
});
|
|
127
|
+
n8n_workflow_1.LoggerProxy.error('Failed to send email', {
|
|
128
|
+
userId: req.user.id,
|
|
129
|
+
inviteAcceptUrl,
|
|
130
|
+
domain: baseUrl,
|
|
131
|
+
email,
|
|
132
|
+
});
|
|
133
|
+
resp.error = `Email could not be sent`;
|
|
134
|
+
}
|
|
135
|
+
return resp;
|
|
136
|
+
}));
|
|
137
|
+
n8n_workflow_1.LoggerProxy.debug(usersPendingSetup.length > 1
|
|
138
|
+
? `Sent ${usersPendingSetup.length} invite emails successfully`
|
|
139
|
+
: `Sent 1 invite email successfully`, { userShells: createUsers });
|
|
140
|
+
return emailingResults;
|
|
141
|
+
}));
|
|
142
|
+
this.app.get(`/${this.restEndpoint}/resolve-signup-token`, __1.ResponseHelper.send(async (req) => {
|
|
143
|
+
const { inviterId, inviteeId } = req.query;
|
|
144
|
+
if (!inviterId || !inviteeId) {
|
|
145
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve signup token failed because of missing user IDs in query string', { inviterId, inviteeId });
|
|
146
|
+
throw new __1.ResponseHelper.ResponseError('Invalid payload', undefined, 400);
|
|
147
|
+
}
|
|
148
|
+
for (const userId of [inviterId, inviteeId]) {
|
|
149
|
+
if (!validator_1.default.isUUID(userId)) {
|
|
150
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve signup token failed because of invalid user ID', {
|
|
151
|
+
userId,
|
|
152
|
+
});
|
|
153
|
+
throw new __1.ResponseHelper.ResponseError('Invalid userId', undefined, 400);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
const users = await __1.Db.collections.User.find({ where: { id: typeorm_1.In([inviterId, inviteeId]) } });
|
|
157
|
+
if (users.length !== 2) {
|
|
158
|
+
n8n_workflow_1.LoggerProxy.debug('Request to resolve signup token failed because the ID of the inviter and/or the ID of the invitee were not found in database', { inviterId, inviteeId });
|
|
159
|
+
throw new __1.ResponseHelper.ResponseError('Invalid invite URL', undefined, 400);
|
|
160
|
+
}
|
|
161
|
+
const invitee = users.find((user) => user.id === inviteeId);
|
|
162
|
+
if (!invitee || invitee.password) {
|
|
163
|
+
n8n_workflow_1.LoggerProxy.error('Invalid invite URL - invitee already setup', {
|
|
164
|
+
inviterId,
|
|
165
|
+
inviteeId,
|
|
166
|
+
});
|
|
167
|
+
throw new __1.ResponseHelper.ResponseError('The invitation was likely either deleted or already claimed', undefined, 400);
|
|
168
|
+
}
|
|
169
|
+
const inviter = users.find((user) => user.id === inviterId);
|
|
170
|
+
if (!inviter || !inviter.email || !inviter.firstName) {
|
|
171
|
+
n8n_workflow_1.LoggerProxy.error('Request to resolve signup token failed because inviter does not exist or is not set up', {
|
|
172
|
+
inviterId: inviter === null || inviter === void 0 ? void 0 : inviter.id,
|
|
173
|
+
});
|
|
174
|
+
throw new __1.ResponseHelper.ResponseError('Invalid request', undefined, 400);
|
|
175
|
+
}
|
|
176
|
+
void __1.InternalHooksManager.getInstance().onUserInviteEmailClick({
|
|
177
|
+
user_id: inviteeId,
|
|
178
|
+
});
|
|
179
|
+
const { firstName, lastName } = inviter;
|
|
180
|
+
return { inviter: { firstName, lastName } };
|
|
181
|
+
}));
|
|
182
|
+
this.app.post(`/${this.restEndpoint}/users/:id`, __1.ResponseHelper.send(async (req, res) => {
|
|
183
|
+
const { id: inviteeId } = req.params;
|
|
184
|
+
const { inviterId, firstName, lastName, password } = req.body;
|
|
185
|
+
if (!inviterId || !inviteeId || !firstName || !lastName || !password) {
|
|
186
|
+
n8n_workflow_1.LoggerProxy.debug('Request to fill out a user shell failed because of missing properties in payload', { payload: req.body });
|
|
187
|
+
throw new __1.ResponseHelper.ResponseError('Invalid payload', undefined, 400);
|
|
188
|
+
}
|
|
189
|
+
const validPassword = UserManagementHelper_1.validatePassword(password);
|
|
190
|
+
const users = await __1.Db.collections.User.find({
|
|
191
|
+
where: { id: typeorm_1.In([inviterId, inviteeId]) },
|
|
192
|
+
relations: ['globalRole'],
|
|
193
|
+
});
|
|
194
|
+
if (users.length !== 2) {
|
|
195
|
+
n8n_workflow_1.LoggerProxy.debug('Request to fill out a user shell failed because the inviter ID and/or invitee ID were not found in database', {
|
|
196
|
+
inviterId,
|
|
197
|
+
inviteeId,
|
|
198
|
+
});
|
|
199
|
+
throw new __1.ResponseHelper.ResponseError('Invalid payload or URL', undefined, 400);
|
|
200
|
+
}
|
|
201
|
+
const invitee = users.find((user) => user.id === inviteeId);
|
|
202
|
+
if (invitee.password) {
|
|
203
|
+
n8n_workflow_1.LoggerProxy.debug('Request to fill out a user shell failed because the invite had already been accepted', { inviteeId });
|
|
204
|
+
throw new __1.ResponseHelper.ResponseError('This invite has been accepted already', undefined, 400);
|
|
205
|
+
}
|
|
206
|
+
invitee.firstName = firstName;
|
|
207
|
+
invitee.lastName = lastName;
|
|
208
|
+
invitee.password = bcryptjs_1.hashSync(validPassword, bcryptjs_1.genSaltSync(10));
|
|
209
|
+
const updatedUser = await __1.Db.collections.User.save(invitee);
|
|
210
|
+
await jwt_1.issueCookie(res, updatedUser);
|
|
211
|
+
void __1.InternalHooksManager.getInstance().onUserSignup({
|
|
212
|
+
user_id: invitee.id,
|
|
213
|
+
});
|
|
214
|
+
return UserManagementHelper_1.sanitizeUser(updatedUser);
|
|
215
|
+
}));
|
|
216
|
+
this.app.get(`/${this.restEndpoint}/users`, __1.ResponseHelper.send(async () => {
|
|
217
|
+
const users = await __1.Db.collections.User.find({ relations: ['globalRole'] });
|
|
218
|
+
return users.map((user) => UserManagementHelper_1.sanitizeUser(user, ['personalizationAnswers']));
|
|
219
|
+
}));
|
|
220
|
+
this.app.delete(`/${this.restEndpoint}/users/:id`, __1.ResponseHelper.send(async (req) => {
|
|
221
|
+
const { id: idToDelete } = req.params;
|
|
222
|
+
if (req.user.id === idToDelete) {
|
|
223
|
+
n8n_workflow_1.LoggerProxy.debug('Request to delete a user failed because it attempted to delete the requesting user', { userId: req.user.id });
|
|
224
|
+
throw new __1.ResponseHelper.ResponseError('Cannot delete your own user', undefined, 400);
|
|
225
|
+
}
|
|
226
|
+
const { transferId } = req.query;
|
|
227
|
+
if (transferId === idToDelete) {
|
|
228
|
+
throw new __1.ResponseHelper.ResponseError('Request to delete a user failed because the user to delete and the transferee are the same user', undefined, 400);
|
|
229
|
+
}
|
|
230
|
+
const users = await __1.Db.collections.User.find({
|
|
231
|
+
where: { id: typeorm_1.In([transferId, idToDelete]) },
|
|
232
|
+
});
|
|
233
|
+
if (!users.length || (transferId && users.length !== 2)) {
|
|
234
|
+
throw new __1.ResponseHelper.ResponseError('Request to delete a user failed because the ID of the user to delete and/or the ID of the transferee were not found in DB', undefined, 404);
|
|
235
|
+
}
|
|
236
|
+
const userToDelete = users.find((user) => user.id === req.params.id);
|
|
237
|
+
if (transferId) {
|
|
238
|
+
const transferee = users.find((user) => user.id === transferId);
|
|
239
|
+
await __1.Db.transaction(async (transactionManager) => {
|
|
240
|
+
await transactionManager.update(SharedWorkflow_1.SharedWorkflow, { user: userToDelete }, { user: transferee });
|
|
241
|
+
await transactionManager.update(SharedCredentials_1.SharedCredentials, { user: userToDelete }, { user: transferee });
|
|
242
|
+
await transactionManager.delete(User_1.User, { id: userToDelete.id });
|
|
243
|
+
});
|
|
244
|
+
return { success: true };
|
|
245
|
+
}
|
|
246
|
+
const [ownedSharedWorkflows, ownedSharedCredentials] = await Promise.all([
|
|
247
|
+
__1.Db.collections.SharedWorkflow.find({
|
|
248
|
+
relations: ['workflow'],
|
|
249
|
+
where: { user: userToDelete },
|
|
250
|
+
}),
|
|
251
|
+
__1.Db.collections.SharedCredentials.find({
|
|
252
|
+
relations: ['credentials'],
|
|
253
|
+
where: { user: userToDelete },
|
|
254
|
+
}),
|
|
255
|
+
]);
|
|
256
|
+
await __1.Db.transaction(async (transactionManager) => {
|
|
257
|
+
const ownedWorkflows = await Promise.all(ownedSharedWorkflows.map(async ({ workflow }) => {
|
|
258
|
+
if (workflow.active) {
|
|
259
|
+
await this.activeWorkflowRunner.remove(workflow.id.toString());
|
|
260
|
+
}
|
|
261
|
+
return workflow;
|
|
262
|
+
}));
|
|
263
|
+
await transactionManager.remove(ownedWorkflows);
|
|
264
|
+
await transactionManager.remove(ownedSharedCredentials.map(({ credentials }) => credentials));
|
|
265
|
+
await transactionManager.delete(User_1.User, { id: userToDelete.id });
|
|
266
|
+
});
|
|
267
|
+
const telemetryData = {
|
|
268
|
+
user_id: req.user.id,
|
|
269
|
+
target_user_old_status: userToDelete.isPending ? 'invited' : 'active',
|
|
270
|
+
target_user_id: idToDelete,
|
|
271
|
+
};
|
|
272
|
+
telemetryData.migration_strategy = transferId ? 'transfer_data' : 'delete_data';
|
|
273
|
+
if (transferId) {
|
|
274
|
+
telemetryData.migration_user_id = transferId;
|
|
275
|
+
}
|
|
276
|
+
void __1.InternalHooksManager.getInstance().onUserDeletion(req.user.id, telemetryData);
|
|
277
|
+
return { success: true };
|
|
278
|
+
}));
|
|
279
|
+
this.app.post(`/${this.restEndpoint}/users/:id/reinvite`, __1.ResponseHelper.send(async (req) => {
|
|
280
|
+
const { id: idToReinvite } = req.params;
|
|
281
|
+
if (!UserManagementHelper_1.isEmailSetUp()) {
|
|
282
|
+
n8n_workflow_1.LoggerProxy.error('Request to reinvite a user failed because email sending was not set up');
|
|
283
|
+
throw new __1.ResponseHelper.ResponseError('Email sending must be set up in order to invite other users', undefined, 500);
|
|
284
|
+
}
|
|
285
|
+
const reinvitee = await __1.Db.collections.User.findOne({ id: idToReinvite });
|
|
286
|
+
if (!reinvitee) {
|
|
287
|
+
n8n_workflow_1.LoggerProxy.debug('Request to reinvite a user failed because the ID of the reinvitee was not found in database');
|
|
288
|
+
throw new __1.ResponseHelper.ResponseError('Could not find user', undefined, 404);
|
|
289
|
+
}
|
|
290
|
+
if (reinvitee.password) {
|
|
291
|
+
n8n_workflow_1.LoggerProxy.debug('Request to reinvite a user failed because the invite had already been accepted', { userId: reinvitee.id });
|
|
292
|
+
throw new __1.ResponseHelper.ResponseError('User has already accepted the invite', undefined, 400);
|
|
293
|
+
}
|
|
294
|
+
const baseUrl = UserManagementHelper_1.getInstanceBaseUrl();
|
|
295
|
+
const inviteAcceptUrl = `${baseUrl}/signup?inviterId=${req.user.id}&inviteeId=${reinvitee.id}`;
|
|
296
|
+
let mailer;
|
|
297
|
+
try {
|
|
298
|
+
mailer = await UserManagementMailer.getInstance();
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
if (error instanceof Error) {
|
|
302
|
+
throw new __1.ResponseHelper.ResponseError(error.message, undefined, 500);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
const result = await (mailer === null || mailer === void 0 ? void 0 : mailer.invite({
|
|
306
|
+
email: reinvitee.email,
|
|
307
|
+
inviteAcceptUrl,
|
|
308
|
+
domain: baseUrl,
|
|
309
|
+
}));
|
|
310
|
+
if (!(result === null || result === void 0 ? void 0 : result.success)) {
|
|
311
|
+
void __1.InternalHooksManager.getInstance().onEmailFailed({
|
|
312
|
+
user_id: req.user.id,
|
|
313
|
+
message_type: 'Resend invite',
|
|
314
|
+
});
|
|
315
|
+
n8n_workflow_1.LoggerProxy.error('Failed to send email', {
|
|
316
|
+
email: reinvitee.email,
|
|
317
|
+
inviteAcceptUrl,
|
|
318
|
+
domain: baseUrl,
|
|
319
|
+
});
|
|
320
|
+
throw new __1.ResponseHelper.ResponseError(`Failed to send email to ${reinvitee.email}`, undefined, 500);
|
|
321
|
+
}
|
|
322
|
+
void __1.InternalHooksManager.getInstance().onUserReinvite({
|
|
323
|
+
user_id: req.user.id,
|
|
324
|
+
target_user_id: reinvitee.id,
|
|
325
|
+
});
|
|
326
|
+
void __1.InternalHooksManager.getInstance().onUserTransactionalEmail({
|
|
327
|
+
user_id: reinvitee.id,
|
|
328
|
+
message_type: 'Resend invite',
|
|
329
|
+
});
|
|
330
|
+
return { success: true };
|
|
331
|
+
}));
|
|
332
|
+
}
|
|
333
|
+
exports.usersNamespace = usersNamespace;
|
|
334
|
+
//# sourceMappingURL=users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"users.js","sourceRoot":"","sources":["../../../../src/UserManagement/routes/users.ts"],"names":[],"mappings":"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"}
|
package/dist/src/WaitTracker.js
CHANGED
|
@@ -5,6 +5,7 @@ const n8n_workflow_1 = require("n8n-workflow");
|
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const DateUtils_1 = require("typeorm/util/DateUtils");
|
|
7
7
|
const _1 = require(".");
|
|
8
|
+
const UserManagementHelper_1 = require("./UserManagement/UserManagementHelper");
|
|
8
9
|
class WaitTrackerClass {
|
|
9
10
|
constructor() {
|
|
10
11
|
this.waitingExecutions = {};
|
|
@@ -82,10 +83,15 @@ class WaitTrackerClass {
|
|
|
82
83
|
if (fullExecutionData.finished) {
|
|
83
84
|
throw new Error('The execution did succeed and can so not be started again.');
|
|
84
85
|
}
|
|
86
|
+
if (!fullExecutionData.workflowData.id) {
|
|
87
|
+
throw new Error('Only saved workflows can be resumed.');
|
|
88
|
+
}
|
|
89
|
+
const user = await UserManagementHelper_1.getWorkflowOwner(fullExecutionData.workflowData.id.toString());
|
|
85
90
|
const data = {
|
|
86
91
|
executionMode: fullExecutionData.mode,
|
|
87
92
|
executionData: fullExecutionData.data,
|
|
88
93
|
workflowData: fullExecutionData.workflowData,
|
|
94
|
+
userId: user.id,
|
|
89
95
|
};
|
|
90
96
|
const workflowRunner = new _1.WorkflowRunner();
|
|
91
97
|
await workflowRunner.run(data, false, false, executionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaitTracker.js","sourceRoot":"","sources":["../../src/WaitTracker.ts"],"names":[],"mappings":";;;AAQA,+CAAmF;AAEnF,qCAA0E;AAE1E,sDAAmD;AACnD,wBAYW;
|
|
1
|
+
{"version":3,"file":"WaitTracker.js","sourceRoot":"","sources":["../../src/WaitTracker.ts"],"names":[],"mappings":"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"}
|