@resolveio/server-lib 20.0.26 → 20.0.28

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.
Files changed (201) hide show
  1. package/client-server-app.js +1 -47
  2. package/client-server-app.js.map +1 -1
  3. package/collections/app-status.collection.js +1 -50
  4. package/collections/app-status.collection.js.map +1 -1
  5. package/collections/counter.collection.js +1 -53
  6. package/collections/counter.collection.js.map +1 -1
  7. package/collections/cron-job-history.collection.js +1 -88
  8. package/collections/cron-job-history.collection.js.map +1 -1
  9. package/collections/cron-job.collection.js +1 -84
  10. package/collections/cron-job.collection.js.map +1 -1
  11. package/collections/email-history.collection.js +1 -65
  12. package/collections/email-history.collection.js.map +1 -1
  13. package/collections/email-verified.collection.js +1 -60
  14. package/collections/email-verified.collection.js.map +1 -1
  15. package/collections/file.collection.js +1 -72
  16. package/collections/file.collection.js.map +1 -1
  17. package/collections/flag.collection.js +1 -55
  18. package/collections/flag.collection.js.map +1 -1
  19. package/collections/log-method-latency.collection.js +1 -63
  20. package/collections/log-method-latency.collection.js.map +1 -1
  21. package/collections/log-subscription.collection.js +1 -67
  22. package/collections/log-subscription.collection.js.map +1 -1
  23. package/collections/log-ts.collection.js +1 -77
  24. package/collections/log-ts.collection.js.map +1 -1
  25. package/collections/log.collection.js +1 -76
  26. package/collections/log.collection.js.map +1 -1
  27. package/collections/logged-in-users.collection.js +1 -64
  28. package/collections/logged-in-users.collection.js.map +1 -1
  29. package/collections/method-response.collection.js +1 -65
  30. package/collections/method-response.collection.js.map +1 -1
  31. package/collections/monitor-cpu.collection.js +1 -62
  32. package/collections/monitor-cpu.collection.js.map +1 -1
  33. package/collections/monitor-memory.collection.js +1 -74
  34. package/collections/monitor-memory.collection.js.map +1 -1
  35. package/collections/monitor-mongo.collection.js +1 -68
  36. package/collections/monitor-mongo.collection.js.map +1 -1
  37. package/collections/notification.collection.js +1 -55
  38. package/collections/notification.collection.js.map +1 -1
  39. package/collections/report-builder-dashboard-builder.collection.js +1 -108
  40. package/collections/report-builder-dashboard-builder.collection.js.map +1 -1
  41. package/collections/report-builder-library.collection.js +1 -86
  42. package/collections/report-builder-library.collection.js.map +1 -1
  43. package/collections/report-builder-report.collection.js +1 -148
  44. package/collections/report-builder-report.collection.js.map +1 -1
  45. package/collections/user-group.collection.js +1 -93
  46. package/collections/user-group.collection.js.map +1 -1
  47. package/collections/user-guide.collection.js +1 -56
  48. package/collections/user-guide.collection.js.map +1 -1
  49. package/collections/user.collection.js +1 -265
  50. package/collections/user.collection.js.map +1 -1
  51. package/cron/cron.js +1 -101
  52. package/cron/cron.js.map +1 -1
  53. package/fixtures/cron-jobs.js +1 -87
  54. package/fixtures/cron-jobs.js.map +1 -1
  55. package/fixtures/init.js +1 -58
  56. package/fixtures/init.js.map +1 -1
  57. package/http/auth.js +1 -763
  58. package/http/auth.js.map +1 -1
  59. package/http/health.js +1 -11
  60. package/http/health.js.map +1 -1
  61. package/http/home.js +1 -65
  62. package/http/home.js.map +1 -1
  63. package/index.js +1 -126
  64. package/index.js.map +1 -1
  65. package/managers/cron.manager.js +1 -322
  66. package/managers/cron.manager.js.map +1 -1
  67. package/managers/method.manager.js +1 -593
  68. package/managers/method.manager.js.map +1 -1
  69. package/managers/mongo.manager.js +1 -2259
  70. package/managers/mongo.manager.js.map +1 -1
  71. package/managers/monitor.manager.js +1 -350
  72. package/managers/monitor.manager.js.map +1 -1
  73. package/managers/subscription.manager.js +1 -1110
  74. package/managers/subscription.manager.js.map +1 -1
  75. package/managers/subscription.performance.js +1 -102
  76. package/managers/subscription.performance.js.map +1 -1
  77. package/methods/accounts.js +1 -291
  78. package/methods/accounts.js.map +1 -1
  79. package/methods/aws.js +1 -616
  80. package/methods/aws.js.map +1 -1
  81. package/methods/collections.js +1 -499
  82. package/methods/collections.js.map +1 -1
  83. package/methods/counters.js +1 -121
  84. package/methods/counters.js.map +1 -1
  85. package/methods/cron-jobs.js +1 -1337
  86. package/methods/cron-jobs.js.map +1 -1
  87. package/methods/flags.js +1 -8
  88. package/methods/flags.js.map +1 -1
  89. package/methods/logs.js +1 -370
  90. package/methods/logs.js.map +1 -1
  91. package/methods/monitor.js +1 -564
  92. package/methods/monitor.js.map +1 -1
  93. package/methods/pdf.js +1 -731
  94. package/methods/pdf.js.map +1 -1
  95. package/methods/report-builder.js +1 -859
  96. package/methods/report-builder.js.map +1 -1
  97. package/methods/support.js +1 -245
  98. package/methods/support.js.map +1 -1
  99. package/models/app-status.model.js +1 -3
  100. package/models/app-status.model.js.map +1 -1
  101. package/models/billing-logged-in-users.model.js +1 -3
  102. package/models/billing-logged-in-users.model.js.map +1 -1
  103. package/models/collection-document.model.js +1 -3
  104. package/models/collection-document.model.js.map +1 -1
  105. package/models/counter.model.js +1 -3
  106. package/models/counter.model.js.map +1 -1
  107. package/models/cron-job-history.model.js +1 -3
  108. package/models/cron-job-history.model.js.map +1 -1
  109. package/models/cron-job.model.js +1 -3
  110. package/models/cron-job.model.js.map +1 -1
  111. package/models/dialog.model.js +1 -3
  112. package/models/dialog.model.js.map +1 -1
  113. package/models/email-history.model.js +1 -3
  114. package/models/email-history.model.js.map +1 -1
  115. package/models/email-verified.model.js +1 -3
  116. package/models/email-verified.model.js.map +1 -1
  117. package/models/file.model.js +1 -3
  118. package/models/file.model.js.map +1 -1
  119. package/models/flag.model.js +1 -3
  120. package/models/flag.model.js.map +1 -1
  121. package/models/log-method-latency.model.js +1 -3
  122. package/models/log-method-latency.model.js.map +1 -1
  123. package/models/log-subscription.model.js +1 -3
  124. package/models/log-subscription.model.js.map +1 -1
  125. package/models/log.model.js +1 -3
  126. package/models/log.model.js.map +1 -1
  127. package/models/logged-in-users.model.js +1 -3
  128. package/models/logged-in-users.model.js.map +1 -1
  129. package/models/method-response.model.js +1 -3
  130. package/models/method-response.model.js.map +1 -1
  131. package/models/method.model.js +1 -3
  132. package/models/method.model.js.map +1 -1
  133. package/models/monitor-cpu.model.js +1 -3
  134. package/models/monitor-cpu.model.js.map +1 -1
  135. package/models/monitor-memory.model.js +1 -3
  136. package/models/monitor-memory.model.js.map +1 -1
  137. package/models/monitor-mongo.model.js +1 -3
  138. package/models/monitor-mongo.model.js.map +1 -1
  139. package/models/notification.model.js +1 -3
  140. package/models/notification.model.js.map +1 -1
  141. package/models/pagination.model.js +1 -23
  142. package/models/pagination.model.js.map +1 -1
  143. package/models/permission.model.js +1 -3
  144. package/models/permission.model.js.map +1 -1
  145. package/models/report-builder-dashboard-builder.model.js +1 -3
  146. package/models/report-builder-dashboard-builder.model.js.map +1 -1
  147. package/models/report-builder-library.model.js +1 -3
  148. package/models/report-builder-library.model.js.map +1 -1
  149. package/models/report-builder-report.model.js +1 -3
  150. package/models/report-builder-report.model.js.map +1 -1
  151. package/models/report-builder.model.js +1 -3
  152. package/models/report-builder.model.js.map +1 -1
  153. package/models/select-data-label.model.js +1 -3
  154. package/models/select-data-label.model.js.map +1 -1
  155. package/models/server-response.model.js +1 -3
  156. package/models/server-response.model.js.map +1 -1
  157. package/models/subscription.model.js +1 -3
  158. package/models/subscription.model.js.map +1 -1
  159. package/models/support-ticket.model.js +1 -3
  160. package/models/support-ticket.model.js.map +1 -1
  161. package/models/user-group.model.js +1 -3
  162. package/models/user-group.model.js.map +1 -1
  163. package/models/user-guide.model.js +1 -3
  164. package/models/user-guide.model.js.map +1 -1
  165. package/models/user.model.js +1 -3
  166. package/models/user.model.js.map +1 -1
  167. package/package.json +6 -4
  168. package/public_api.js +1 -74
  169. package/public_api.js.map +1 -1
  170. package/publications/app-status.js +1 -16
  171. package/publications/app-status.js.map +1 -1
  172. package/publications/cron-jobs.js +1 -32
  173. package/publications/cron-jobs.js.map +1 -1
  174. package/publications/files.js +1 -36
  175. package/publications/files.js.map +1 -1
  176. package/publications/flags.js +1 -22
  177. package/publications/flags.js.map +1 -1
  178. package/publications/logs.js +1 -164
  179. package/publications/logs.js.map +1 -1
  180. package/publications/method-responses.js +1 -16
  181. package/publications/method-responses.js.map +1 -1
  182. package/publications/notifications.js +1 -16
  183. package/publications/notifications.js.map +1 -1
  184. package/publications/report-builder-dashboard-builders.js +1 -42
  185. package/publications/report-builder-dashboard-builders.js.map +1 -1
  186. package/publications/report-builder-libraries.js +1 -89
  187. package/publications/report-builder-libraries.js.map +1 -1
  188. package/publications/report-builder-reports.js +1 -50
  189. package/publications/report-builder-reports.js.map +1 -1
  190. package/publications/super-admin.js +1 -16
  191. package/publications/super-admin.js.map +1 -1
  192. package/publications/user-groups.js +1 -16
  193. package/publications/user-groups.js.map +1 -1
  194. package/publications/user-guides.js +1 -16
  195. package/publications/user-guides.js.map +1 -1
  196. package/server-app.js +1 -770
  197. package/server-app.js.map +1 -1
  198. package/util/common.js +1 -546
  199. package/util/common.js.map +1 -1
  200. package/util/schema-report-builder.js +1 -452
  201. package/util/schema-report-builder.js.map +1 -1
package/http/auth.js CHANGED
@@ -1,764 +1,2 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.setupAuthRoutes = void 0;
40
- var user_collection_1 = require("../collections/user.collection");
41
- var jwt = require("jsonwebtoken");
42
- var handlebars = require("handlebars");
43
- var __1 = require("..");
44
- var mongo_manager_1 = require("../managers/mongo.manager");
45
- var simpl_schema_1 = require("simpl-schema");
46
- var bodyParser = require("body-parser");
47
- var jwt_decode_1 = require("jwt-decode");
48
- function setupAuthRoutes(mainServer, app, serverConfig) {
49
- var _this = this;
50
- app.post('/login365', bodyParser.json(), function (request, response) { return __awaiter(_this, void 0, void 0, function () {
51
- var body, schema, tokenData, token, decodedJWT, user, update;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0:
55
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
56
- response.send(JSON.stringify({
57
- error: true,
58
- result: 'Invalid header'
59
- }));
60
- return [3 /*break*/, 11];
61
- case 1:
62
- body = request.body;
63
- schema = new simpl_schema_1.default({
64
- id_token: {
65
- type: String
66
- }
67
- });
68
- try {
69
- schema.validate(body);
70
- }
71
- catch (errors) {
72
- if (errors) {
73
- console.error(new Date(), 'Error in HTTP Check (/login)', errors);
74
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login365' + '\n\nData Being Checked\n' + JSON.stringify(body, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
75
- response.send(JSON.stringify({
76
- error: true,
77
- result: 'Invalid Parameters'
78
- }));
79
- return [2 /*return*/];
80
- }
81
- }
82
- tokenData = body.id_token.split('&');
83
- token = tokenData[0].split('=')[1];
84
- decodedJWT = (0, jwt_decode_1.default)(token);
85
- if (!(decodedJWT && decodedJWT['name'] && decodedJWT['preferred_username'] && decodedJWT['oid'])) return [3 /*break*/, 10];
86
- return [4 /*yield*/, user_collection_1.Users.findOne({ 'other.ms_oid': decodedJWT['oid'] })];
87
- case 2:
88
- user = _a.sent();
89
- if (!!user) return [3 /*break*/, 5];
90
- return [4 /*yield*/, user_collection_1.Users.findOne({ email: decodedJWT['preferred_username'].toLowerCase() })];
91
- case 3:
92
- user = _a.sent();
93
- if (!user) return [3 /*break*/, 5];
94
- return [4 /*yield*/, user_collection_1.Users.updateOne({ _id: user._id }, { $set: { 'other.ms_oid': decodedJWT['oid'] } })];
95
- case 4:
96
- _a.sent();
97
- _a.label = 5;
98
- case 5:
99
- if (!!user) return [3 /*break*/, 7];
100
- user = {
101
- _id: (0, mongo_manager_1.objectIdHexString)(),
102
- __v: 0,
103
- roles: {
104
- super_admin: false,
105
- approvals: [],
106
- groups: [],
107
- notifications: [],
108
- miscs: []
109
- },
110
- username: decodedJWT['preferred_username'].toLowerCase(),
111
- email: decodedJWT['preferred_username'].toLowerCase(),
112
- fullname: decodedJWT['name'],
113
- active: true,
114
- phonenumber: '',
115
- readonly: false,
116
- other: {
117
- ms_oid: decodedJWT['oid']
118
- },
119
- attempts: 0,
120
- salt: jwt.sign({ now: (Date.now() - 1000).toString() }, serverConfig['JWT_SECRET'], {
121
- expiresIn: 90 * 24 * 60 * 60 * 1000 // 90 days
122
- }),
123
- hash: jwt.sign({ now: (Date.now() + 1000).toString() }, serverConfig['JWT_SECRET'], {
124
- expiresIn: 90 * 24 * 60 * 60 * 1000 // 90 days
125
- }),
126
- last: new Date(),
127
- settings: null,
128
- services: null,
129
- is_customer: false
130
- };
131
- return [4 /*yield*/, user_collection_1.Users.create(user)];
132
- case 6:
133
- _a.sent();
134
- return [3 /*break*/, 9];
135
- case 7:
136
- update = false;
137
- if (user.email !== decodedJWT['preferred_username'].toLowerCase()) {
138
- user.email = decodedJWT['preferred_username'].toLowerCase();
139
- update = true;
140
- }
141
- if (user.fullname !== decodedJWT['name']) {
142
- user.fullname = decodedJWT['name'];
143
- update = true;
144
- }
145
- if (!update) return [3 /*break*/, 9];
146
- return [4 /*yield*/, user_collection_1.Users.updateOne({ _id: user._id }, { $set: { email: user.email, fullname: user.fullname } })];
147
- case 8:
148
- _a.sent();
149
- _a.label = 9;
150
- case 9:
151
- response.send(JSON.stringify({
152
- error: false,
153
- result: {
154
- token: jwt.sign({ id_user: user._id }, serverConfig['JWT_SECRET'], {
155
- expiresIn: 90 * 24 * 60 * 60 * 1000 // 90 days
156
- })
157
- }
158
- }));
159
- return [3 /*break*/, 11];
160
- case 10:
161
- console.log('ERROR - 1', tokenData, token, decodedJWT);
162
- response.send(JSON.stringify({
163
- error: true,
164
- result: 'Invalid Azure Token'
165
- }));
166
- _a.label = 11;
167
- case 11: return [2 /*return*/];
168
- }
169
- });
170
- }); });
171
- // Login via HTTP, return refresh token if authenticated
172
- app.post('/login', bodyParser.json(), function (request, response) { return __awaiter(_this, void 0, void 0, function () {
173
- var body, schema, user_1, resAuth, emailData_1, emailData_2;
174
- return __generator(this, function (_a) {
175
- switch (_a.label) {
176
- case 0:
177
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
178
- response.send(JSON.stringify({
179
- error: true,
180
- result: 'Invalid header'
181
- }));
182
- return [3 /*break*/, 8];
183
- case 1:
184
- body = request.body;
185
- schema = new simpl_schema_1.default({
186
- username: {
187
- type: String
188
- },
189
- password: {
190
- type: String
191
- }
192
- });
193
- try {
194
- schema.validate(body);
195
- }
196
- catch (errors) {
197
- if (errors) {
198
- console.error(new Date(), 'Error in HTTP Check (/login)', errors);
199
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/login' + '\n\nData Being Checked\n' + JSON.stringify(body, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
200
- response.send(JSON.stringify({
201
- error: true,
202
- result: 'Invalid Parameters'
203
- }));
204
- return [2 /*return*/];
205
- }
206
- }
207
- return [4 /*yield*/, user_collection_1.Users.findOne({ active: true, username: body.username })];
208
- case 2:
209
- user_1 = _a.sent();
210
- if (!!user_1) return [3 /*break*/, 4];
211
- return [4 /*yield*/, user_collection_1.Users.findOne({ active: true, email: body.username })];
212
- case 3:
213
- user_1 = _a.sent();
214
- _a.label = 4;
215
- case 4:
216
- if (!user_1) {
217
- response.send(JSON.stringify({
218
- error: true,
219
- result: 'Invalid Username And Password'
220
- }));
221
- return [2 /*return*/];
222
- }
223
- return [4 /*yield*/, user_collection_1.Users.authenticate(user_1, body.password)];
224
- case 5:
225
- resAuth = _a.sent();
226
- if (!resAuth['error']) return [3 /*break*/, 6];
227
- if (resAuth['error'] === 'Too Many Attempts') {
228
- response.send(JSON.stringify({
229
- error: true,
230
- result: resAuth['error'] + '. A password reset link has been sent to your email, please reset your password.'
231
- }));
232
- if (!user_1.services) {
233
- user_1.services = {};
234
- }
235
- user_1.services['forgot_password'] = jwt.sign({ id_user: user_1._id }, serverConfig['JWT_SECRET']);
236
- emailData_1 = {
237
- userToChangePassword: user_1.fullname,
238
- userWhoResetPassword: __1.ResolveIOServer.getClientName() + ' System',
239
- url: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user_1.services['forgot_password'])
240
- };
241
- user_collection_1.Users.updateOne({ _id: user_1._id }, { $set: { services: user_1.services } }).then(function (resUp) {
242
- mainServer.getMethodManager().readFile('email-templates/forgot-password.html').then(function (html) {
243
- var template = handlebars.compile(html);
244
- handlebars.registerHelper('equals', function (a, b) {
245
- return a === b;
246
- });
247
- mainServer.getMethodManager().sendEmail(user_1.email, 'ResolveIO (' + __1.ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData_1), null, null, '');
248
- }, function (errEmail) { return console.log(errEmail); });
249
- }, function (errUp) { });
250
- }
251
- else if (resAuth['error'] === 'No Salt Value Stored') {
252
- response.send(JSON.stringify({
253
- error: true,
254
- result: 'A password reset link has been sent to your email, please reset your password.'
255
- }));
256
- if (!user_1.services) {
257
- user_1.services = {};
258
- }
259
- user_1.services['forgot_password'] = jwt.sign({ id_user: user_1._id }, serverConfig['JWT_SECRET']);
260
- emailData_2 = {
261
- userToChangePassword: user_1.fullname,
262
- userWhoResetPassword: __1.ResolveIOServer.getClientName() + ' System',
263
- url: (serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(serverConfig['SERVER_URL']) + '&' + user_1.services['forgot_password'])
264
- };
265
- user_collection_1.Users.updateOne({ _id: user_1._id }, { $set: { services: user_1.services } }).then(function (resUp) {
266
- mainServer.getMethodManager().readFile('email-templates/forgot-password.html').then(function (html) {
267
- var template = handlebars.compile(html);
268
- handlebars.registerHelper('equals', function (a, b) {
269
- return a === b;
270
- });
271
- mainServer.getMethodManager().sendEmail(user_1.email, 'ResolveIO (' + __1.ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData_2), null, null, '');
272
- }, function (errEmail) { return console.log(errEmail); });
273
- }, function (err) { });
274
- }
275
- else {
276
- response.send(JSON.stringify({
277
- error: true,
278
- result: resAuth['error']
279
- }));
280
- }
281
- return [3 /*break*/, 8];
282
- case 6:
283
- if (!(resAuth && resAuth['data'] && resAuth['data'].active)) return [3 /*break*/, 8];
284
- return [4 /*yield*/, user_collection_1.Users.resetAttempts(resAuth['data'])];
285
- case 7:
286
- _a.sent();
287
- response.send(JSON.stringify({
288
- error: false,
289
- result: {
290
- token: jwt.sign({ id_user: resAuth['data']._id }, serverConfig['JWT_SECRET'], {
291
- expiresIn: 90 * 24 * 60 * 60 * 1000 // 90 days
292
- })
293
- }
294
- }));
295
- _a.label = 8;
296
- case 8: return [2 /*return*/];
297
- }
298
- });
299
- }); });
300
- app.post('/accessToken', bodyParser.json(), function (request, response) {
301
- return __awaiter(this, void 0, void 0, function () {
302
- var body, schema;
303
- var _this = this;
304
- return __generator(this, function (_a) {
305
- if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
306
- response.send(JSON.stringify({
307
- error: true,
308
- result: 'Invalid header'
309
- }));
310
- }
311
- else {
312
- body = request.body;
313
- schema = new simpl_schema_1.default({
314
- refreshToken: {
315
- type: String
316
- }
317
- });
318
- try {
319
- schema.validate(body);
320
- }
321
- catch (errors) {
322
- if (errors) {
323
- console.error(new Date(), 'Error in HTTP Check (/accessToken)', errors);
324
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/accessToken' + '\n\nData Being Checked\n' + JSON.stringify(body, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
325
- response.send(JSON.stringify({
326
- error: true,
327
- result: 'Invalid Parameters'
328
- }));
329
- return [2 /*return*/];
330
- }
331
- }
332
- jwt.verify(body.refreshToken, serverConfig['JWT_SECRET'], function (err, decoded) {
333
- if (err) {
334
- response.send(JSON.stringify({
335
- error: true,
336
- result: 'Invalid Token'
337
- }));
338
- }
339
- else {
340
- user_collection_1.Users.findById(decoded['id_user']).then(function (user) { return __awaiter(_this, void 0, void 0, function () {
341
- return __generator(this, function (_a) {
342
- if (user) {
343
- if (user.active) {
344
- response.send(JSON.stringify({
345
- error: false,
346
- result: {
347
- token: jwt.sign({ id_user: user._id }, serverConfig['JWT_SECRET'], {
348
- expiresIn: 3 * 24 * 60 * 60 * 1000 // 3 days
349
- }),
350
- user: user
351
- }
352
- }));
353
- }
354
- else {
355
- response.send(JSON.stringify({
356
- error: true,
357
- result: 'Account is Disabled'
358
- }));
359
- }
360
- }
361
- else {
362
- response.send(JSON.stringify({
363
- error: true,
364
- result: 'Invalid User'
365
- }));
366
- }
367
- return [2 /*return*/];
368
- });
369
- }); }, function (error) {
370
- response.send(JSON.stringify({
371
- error: true,
372
- result: 'Invalid Mongo Get User'
373
- }));
374
- });
375
- }
376
- });
377
- }
378
- return [2 /*return*/];
379
- });
380
- });
381
- });
382
- app.post('/userWithEnrollmentToken', bodyParser.json(), function (request, response) {
383
- if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
384
- response.send(JSON.stringify({
385
- error: true,
386
- result: 'Invalid header'
387
- }));
388
- }
389
- else {
390
- var body_1 = request.body;
391
- var schema = new simpl_schema_1.default({
392
- enrollmentToken: {
393
- type: String
394
- }
395
- });
396
- try {
397
- schema.validate(body_1);
398
- }
399
- catch (errors) {
400
- if (errors) {
401
- console.error(new Date(), 'Error in HTTP Check (/userWithEnrollmentToken)', errors);
402
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithEnrollmentToken' + '\n\nData Being Checked\n' + JSON.stringify(body_1, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
403
- response.send(JSON.stringify({
404
- error: true,
405
- result: 'Invalid Parameters'
406
- }));
407
- return;
408
- }
409
- }
410
- jwt.verify(body_1.enrollmentToken, serverConfig['JWT_SECRET'], function (err, decoded) {
411
- if (err) {
412
- response.send(JSON.stringify({
413
- error: true,
414
- result: 'Invalid Token'
415
- }));
416
- }
417
- else {
418
- user_collection_1.Users.findOne({
419
- $and: [
420
- { _id: decoded['id_user'] },
421
- { 'services.enrollment': body_1.enrollmentToken }
422
- ]
423
- }, { projection: { _id: 1, __v: 1, username: 1, active: 1 } }).then(function (user) {
424
- if (user) {
425
- if (user.active) {
426
- response.send(JSON.stringify({
427
- error: false,
428
- result: {
429
- user: user
430
- }
431
- }));
432
- }
433
- else {
434
- response.send(JSON.stringify({
435
- error: true,
436
- result: 'Account is Disabled'
437
- }));
438
- }
439
- }
440
- else {
441
- response.send(JSON.stringify({
442
- error: true,
443
- result: 'Invalid User'
444
- }));
445
- }
446
- }, function (error) {
447
- response.send(JSON.stringify({
448
- error: true,
449
- result: 'Invalid Mongo Get User'
450
- }));
451
- });
452
- }
453
- });
454
- }
455
- });
456
- app.post('/setUserWithEnrollmentToken', bodyParser.json(), function (request, response) {
457
- var _this = this;
458
- if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
459
- response.send(JSON.stringify({
460
- error: true,
461
- result: 'Invalid header'
462
- }));
463
- }
464
- else {
465
- var body_2 = request.body;
466
- var schema = new simpl_schema_1.default({
467
- enrollmentToken: {
468
- type: String
469
- },
470
- password: {
471
- type: String
472
- }
473
- });
474
- try {
475
- schema.validate(body_2);
476
- }
477
- catch (errors) {
478
- if (errors) {
479
- console.error(new Date(), 'Error in HTTP Check (/setUserWithEnrollmentToken)', errors);
480
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithEnrollmentToken' + '\n\nData Being Checked\n' + JSON.stringify(body_2, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
481
- response.send(JSON.stringify({
482
- error: true,
483
- result: 'Invalid Parameters'
484
- }));
485
- return;
486
- }
487
- }
488
- jwt.verify(body_2.enrollmentToken, serverConfig['JWT_SECRET'], function (err, decoded) { return __awaiter(_this, void 0, void 0, function () {
489
- var _this = this;
490
- return __generator(this, function (_a) {
491
- if (err) {
492
- response.send(JSON.stringify({
493
- error: true,
494
- result: 'Invalid Token'
495
- }));
496
- }
497
- else {
498
- user_collection_1.Users.findOne({
499
- $and: [
500
- { _id: decoded['id_user'] },
501
- { 'services.enrollment': body_2.enrollmentToken }
502
- ]
503
- }).then(function (user) { return __awaiter(_this, void 0, void 0, function () {
504
- return __generator(this, function (_a) {
505
- switch (_a.label) {
506
- case 0:
507
- if (!user) return [3 /*break*/, 4];
508
- if (!user.active) return [3 /*break*/, 2];
509
- return [4 /*yield*/, user_collection_1.Users.setPassword(user, body_2.password)];
510
- case 1:
511
- _a.sent();
512
- response.send(JSON.stringify({
513
- error: false,
514
- result: true
515
- }));
516
- return [3 /*break*/, 3];
517
- case 2:
518
- response.send(JSON.stringify({
519
- error: true,
520
- result: 'Account is Disabled'
521
- }));
522
- _a.label = 3;
523
- case 3: return [3 /*break*/, 5];
524
- case 4:
525
- response.send(JSON.stringify({
526
- error: true,
527
- result: 'Invalid User'
528
- }));
529
- _a.label = 5;
530
- case 5: return [2 /*return*/];
531
- }
532
- });
533
- }); }, function (error) {
534
- response.send(JSON.stringify({
535
- error: true,
536
- result: 'Invalid Mongo Get User'
537
- }));
538
- });
539
- }
540
- return [2 /*return*/];
541
- });
542
- }); });
543
- }
544
- });
545
- app.post('/userWithForgotPasswordToken', bodyParser.json(), function (request, response) {
546
- if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
547
- response.send(JSON.stringify({
548
- error: true,
549
- result: 'Invalid header'
550
- }));
551
- }
552
- else {
553
- var body_3 = request.body;
554
- var schema = new simpl_schema_1.default({
555
- forgotPasswordToken: {
556
- type: String
557
- }
558
- });
559
- try {
560
- schema.validate(body_3);
561
- }
562
- catch (errors) {
563
- if (errors) {
564
- console.error(new Date(), 'Error in HTTP Check (/userWithForgotPasswordToken)', errors);
565
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/userWithForgotPasswordToken' + '\n\nData Being Checked\n' + JSON.stringify(body_3, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
566
- response.send(JSON.stringify({
567
- error: true,
568
- result: 'Invalid Parameters'
569
- }));
570
- return;
571
- }
572
- }
573
- jwt.verify(body_3.forgotPasswordToken, serverConfig['JWT_SECRET'], function (err, decoded) {
574
- if (err) {
575
- response.send(JSON.stringify({
576
- error: true,
577
- result: 'Invalid Token'
578
- }));
579
- }
580
- else {
581
- user_collection_1.Users.findOne({
582
- $and: [
583
- { _id: decoded['id_user'] },
584
- { 'services.forgot_password': body_3.forgotPasswordToken }
585
- ]
586
- }, { projection: { _id: 1, __v: 1, username: 1, active: 1 } }).then(function (user) {
587
- if (user) {
588
- if (user.active) {
589
- response.send(JSON.stringify({
590
- error: false,
591
- result: {
592
- user: user
593
- }
594
- }));
595
- }
596
- else {
597
- response.send(JSON.stringify({
598
- error: true,
599
- result: 'Account is Disabled'
600
- }));
601
- }
602
- }
603
- else {
604
- response.send(JSON.stringify({
605
- error: true,
606
- result: 'Invalid Token'
607
- }));
608
- }
609
- }, function (error) {
610
- response.send(JSON.stringify({
611
- error: true,
612
- result: 'Invalid Mongo Get User'
613
- }));
614
- });
615
- }
616
- });
617
- }
618
- });
619
- app.post('/setUserWithForgotPasswordToken', bodyParser.json(), function (request, response) {
620
- var _this = this;
621
- if (request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_URL'] && request.headers.origin !== serverConfig['RESOLVEIO_SECONDARY_URL']) {
622
- response.send(JSON.stringify({
623
- error: true,
624
- result: 'Invalid header'
625
- }));
626
- }
627
- else {
628
- var body_4 = request.body;
629
- var schema = new simpl_schema_1.default({
630
- forgotPasswordToken: {
631
- type: String
632
- },
633
- password: {
634
- type: String
635
- }
636
- });
637
- try {
638
- schema.validate(body_4);
639
- }
640
- catch (errors) {
641
- if (errors) {
642
- console.error(new Date(), 'Error in HTTP Check (/setUserWithForgotPasswordToken)', errors);
643
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/setUserWithForgotPasswordToken' + '\n\nData Being Checked\n' + JSON.stringify(body_4, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
644
- response.send(JSON.stringify({
645
- error: true,
646
- result: 'Invalid Parameters'
647
- }));
648
- return;
649
- }
650
- }
651
- jwt.verify(body_4.forgotPasswordToken, serverConfig['JWT_SECRET'], function (err, decoded) { return __awaiter(_this, void 0, void 0, function () {
652
- var _this = this;
653
- return __generator(this, function (_a) {
654
- if (err) {
655
- response.send(JSON.stringify({
656
- error: true,
657
- result: 'Invalid Token'
658
- }));
659
- }
660
- else {
661
- user_collection_1.Users.findOne({
662
- $and: [
663
- { _id: decoded['id_user'] },
664
- { 'services.forgot_password': body_4.forgotPasswordToken }
665
- ]
666
- }).then(function (user) { return __awaiter(_this, void 0, void 0, function () {
667
- return __generator(this, function (_a) {
668
- switch (_a.label) {
669
- case 0:
670
- if (!user) return [3 /*break*/, 4];
671
- if (!user.active) return [3 /*break*/, 2];
672
- return [4 /*yield*/, user_collection_1.Users.setPassword(user, body_4.password)];
673
- case 1:
674
- _a.sent();
675
- response.send(JSON.stringify({
676
- error: false,
677
- result: true
678
- }));
679
- return [3 /*break*/, 3];
680
- case 2:
681
- response.send(JSON.stringify({
682
- error: true,
683
- result: 'Account is Disabled'
684
- }));
685
- _a.label = 3;
686
- case 3: return [3 /*break*/, 5];
687
- case 4:
688
- response.send(JSON.stringify({
689
- error: true,
690
- result: 'Invalid User'
691
- }));
692
- _a.label = 5;
693
- case 5: return [2 /*return*/];
694
- }
695
- });
696
- }); }, function (error) {
697
- response.send(JSON.stringify({
698
- error: true,
699
- result: 'Invalid Mongo Get User'
700
- }));
701
- });
702
- }
703
- return [2 /*return*/];
704
- });
705
- }); });
706
- }
707
- });
708
- app.post('/resetPassword', bodyParser.json(), function (request, response) { return __awaiter(_this, void 0, void 0, function () {
709
- var body, schema, user;
710
- return __generator(this, function (_a) {
711
- switch (_a.label) {
712
- case 0:
713
- if (!(request.headers.origin !== serverConfig['ROOT_URL'] && request.headers.origin !== serverConfig['SEC_ROOT_URL'])) return [3 /*break*/, 1];
714
- response.send(JSON.stringify({
715
- error: true,
716
- result: 'Invalid header'
717
- }));
718
- return [3 /*break*/, 5];
719
- case 1:
720
- body = request.body;
721
- schema = new simpl_schema_1.default({
722
- username: {
723
- type: String
724
- }
725
- });
726
- try {
727
- schema.validate(body);
728
- }
729
- catch (errors) {
730
- if (errors) {
731
- console.error(new Date(), 'Error in HTTP Check (/resetPassword)', errors);
732
- __1.ResolveIOServer.getMainServer().getMethodManager().sendEmail('dev@resolveio.com', __1.ResolveIOServer.getClientName() + 'HTTP - Error Detected', 'Match Error On HTTP ' + '/resetPassword' + '\n\nData Being Checked\n' + JSON.stringify(body, null, 2) + '\n\nErrors\n' + JSON.stringify(errors, null, 2));
733
- response.send(JSON.stringify({
734
- error: true,
735
- result: 'Invalid Parameters'
736
- }));
737
- return [2 /*return*/];
738
- }
739
- }
740
- return [4 /*yield*/, user_collection_1.Users.findOne({ active: true, username: body.username })];
741
- case 2:
742
- user = _a.sent();
743
- if (!!user) return [3 /*break*/, 4];
744
- return [4 /*yield*/, user_collection_1.Users.findOne({ active: true, email: body.username })];
745
- case 3:
746
- user = _a.sent();
747
- _a.label = 4;
748
- case 4:
749
- if (user) {
750
- mainServer.getMethodManager().callMethodInternal.call(mainServer.getMethodManager(), 'resetUserPassword', user._id);
751
- }
752
- response.send(JSON.stringify({
753
- error: false,
754
- result: ''
755
- }));
756
- _a.label = 5;
757
- case 5: return [2 /*return*/];
758
- }
759
- });
760
- }); });
761
- }
762
- exports.setupAuthRoutes = setupAuthRoutes;
763
-
1
+ "use strict";var __awaiter=this&&this.__awaiter||function(e,i,a,l){return new(a=a||Promise)(function(n,r){function s(e){try{o(l.next(e))}catch(e){r(e)}}function t(e){try{o(l.throw(e))}catch(e){r(e)}}function o(e){var r;e.done?n(e.value):((r=e.value)instanceof a?r:new a(function(e){e(r)})).then(s,t)}o((l=l.apply(e,i||[])).next())})},__generator=this&&this.__generator||function(s,t){var o,i,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},d={next:e(0),throw:e(1),return:e(2)};return"function"==typeof Symbol&&(d[Symbol.iterator]=function(){return this}),d;function e(n){return function(e){var r=[n,e];if(o)throw new TypeError("Generator is already executing.");for(;l=d&&r[d=0]?0:l;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,i=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))l.label=r[1];else if(6===r[0]&&l.label<a[1])l.label=a[1],a=r;else{if(!(a&&l.label<a[2])){a[2]&&l.ops.pop(),l.trys.pop();continue}l.label=a[2],l.ops.push(r)}}r=t.call(s,l)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},user_collection_1=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.setupAuthRoutes=void 0,require("../collections/user.collection")),jwt=require("jsonwebtoken"),handlebars=require("handlebars"),__1=require(".."),mongo_manager_1=require("../managers/mongo.manager"),simpl_schema_1=require("simpl-schema"),bodyParser=require("body-parser"),jwt_decode_1=require("jwt-decode");function setupAuthRoutes(d,e,u){var r=this;e.post("/login365",bodyParser.json(),function(i,a){return __awaiter(r,void 0,void 0,function(){var r,n,s,t,o;return __generator(this,function(e){switch(e.label){case 0:return i.headers.origin===u.ROOT_URL||i.headers.origin===u.SEC_ROOT_URL?[3,1]:(a.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,11]);case 1:n=i.body,r=new simpl_schema_1.default({id_token:{type:String}});try{r.validate(n)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/login)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login365\n\nData Being Checked\n"+JSON.stringify(n,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),a.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return(r=n.id_token.split("&"),n=r[0].split("=")[1],(s=(0,jwt_decode_1.default)(n))&&s.name&&s.preferred_username&&s.oid)?[4,user_collection_1.Users.findOne({"other.ms_oid":s.oid})]:[3,10];case 2:return(t=e.sent())?[3,5]:[4,user_collection_1.Users.findOne({email:s.preferred_username.toLowerCase()})];case 3:return(t=e.sent())?[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{"other.ms_oid":s.oid}})]:[3,5];case 4:e.sent(),e.label=5;case 5:return t?[3,7]:(t={_id:(0,mongo_manager_1.objectIdHexString)(),__v:0,roles:{super_admin:!1,approvals:[],groups:[],notifications:[],miscs:[]},username:s.preferred_username.toLowerCase(),email:s.preferred_username.toLowerCase(),fullname:s.name,active:!0,phonenumber:"",readonly:!1,other:{ms_oid:s.oid},attempts:0,salt:jwt.sign({now:(Date.now()-1e3).toString()},u.JWT_SECRET,{expiresIn:7776e6}),hash:jwt.sign({now:(Date.now()+1e3).toString()},u.JWT_SECRET,{expiresIn:7776e6}),last:new Date,settings:null,services:null,is_customer:!1},[4,user_collection_1.Users.create(t)]);case 6:return e.sent(),[3,9];case 7:return(o=!1,t.email!==s.preferred_username.toLowerCase()&&(t.email=s.preferred_username.toLowerCase(),o=!0),t.fullname!==s.name&&(t.fullname=s.name,o=!0),o)?[4,user_collection_1.Users.updateOne({_id:t._id},{$set:{email:t.email,fullname:t.fullname}})]:[3,9];case 8:e.sent(),e.label=9;case 9:return a.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:t._id},u.JWT_SECRET,{expiresIn:7776e6})}})),[3,11];case 10:console.log("ERROR - 1",r,n,s),a.send(JSON.stringify({error:!0,result:"Invalid Azure Token"})),e.label=11;case 11:return[2]}})})}),e.post("/login",bodyParser.json(),function(a,l){return __awaiter(r,void 0,void 0,function(){var r,n,s,t,o,i;return __generator(this,function(e){switch(e.label){case 0:return a.headers.origin===u.ROOT_URL||a.headers.origin===u.SEC_ROOT_URL?[3,1]:(l.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,8]);case 1:r=a.body,n=new simpl_schema_1.default({username:{type:String},password:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/login)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /login\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),l.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 2:return(s=e.sent())?[3,4]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 3:s=e.sent(),e.label=4;case 4:return s?[4,user_collection_1.Users.authenticate(s,r.password)]:(l.send(JSON.stringify({error:!0,result:"Invalid Username And Password"})),[2]);case 5:return(t=e.sent()).error?("Too Many Attempts"===t.error?(l.send(JSON.stringify({error:!0,result:t.error+". A password reset link has been sent to your email, please reset your password."})),s.services||(s.services={}),s.services.forgot_password=jwt.sign({id_user:s._id},u.JWT_SECRET),o={userToChangePassword:s.fullname,userWhoResetPassword:__1.ResolveIOServer.getClientName()+" System",url:u.ROOT_URL+"/forgot-password?"+encodeURIComponent(u.SERVER_URL)+"&"+s.services.forgot_password},user_collection_1.Users.updateOne({_id:s._id},{$set:{services:s.services}}).then(function(e){d.getMethodManager().readFile("email-templates/forgot-password.html").then(function(e){e=handlebars.compile(e);handlebars.registerHelper("equals",function(e,r){return e===r}),d.getMethodManager().sendEmail(s.email,"ResolveIO ("+__1.ResolveIOServer.getClientName()+") - Forgot Password","",e(o),null,null,"")},function(e){return console.log(e)})},function(e){})):"No Salt Value Stored"===t.error?(l.send(JSON.stringify({error:!0,result:"A password reset link has been sent to your email, please reset your password."})),s.services||(s.services={}),s.services.forgot_password=jwt.sign({id_user:s._id},u.JWT_SECRET),i={userToChangePassword:s.fullname,userWhoResetPassword:__1.ResolveIOServer.getClientName()+" System",url:u.ROOT_URL+"/forgot-password?"+encodeURIComponent(u.SERVER_URL)+"&"+s.services.forgot_password},user_collection_1.Users.updateOne({_id:s._id},{$set:{services:s.services}}).then(function(e){d.getMethodManager().readFile("email-templates/forgot-password.html").then(function(e){e=handlebars.compile(e);handlebars.registerHelper("equals",function(e,r){return e===r}),d.getMethodManager().sendEmail(s.email,"ResolveIO ("+__1.ResolveIOServer.getClientName()+") - Forgot Password","",e(i),null,null,"")},function(e){return console.log(e)})},function(e){})):l.send(JSON.stringify({error:!0,result:t.error})),[3,8]):[3,6];case 6:return t&&t.data&&t.data.active?[4,user_collection_1.Users.resetAttempts(t.data)]:[3,8];case 7:e.sent(),l.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:t.data._id},u.JWT_SECRET,{expiresIn:7776e6})}})),e.label=8;case 8:return[2]}})})}),e.post("/accessToken",bodyParser.json(),function(t,o){return __awaiter(this,void 0,void 0,function(){var r,n,s=this;return __generator(this,function(e){if(t.headers.origin!==u.ROOT_URL&&t.headers.origin!==u.SEC_ROOT_URL&&t.headers.origin!==u.RESOLVEIO_URL&&t.headers.origin!==u.RESOLVEIO_SECONDARY_URL)o.send(JSON.stringify({error:!0,result:"Invalid header"}));else{r=t.body,n=new simpl_schema_1.default({refreshToken:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/accessToken)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /accessToken\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),o.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}jwt.verify(r.refreshToken,u.JWT_SECRET,function(e,r){e?o.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findById(r.id_user).then(function(r){return __awaiter(s,void 0,void 0,function(){return __generator(this,function(e){return r?r.active?o.send(JSON.stringify({error:!1,result:{token:jwt.sign({id_user:r._id},u.JWT_SECRET,{expiresIn:2592e5}),user:r}})):o.send(JSON.stringify({error:!0,result:"Account is Disabled"})):o.send(JSON.stringify({error:!0,result:"Invalid User"})),[2]})})},function(e){o.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}return[2]})})}),e.post("/userWithEnrollmentToken",bodyParser.json(),function(e,n){if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)n.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var s=e.body,e=new simpl_schema_1.default({enrollmentToken:{type:String}});try{e.validate(s)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/userWithEnrollmentToken)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(s,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void n.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(s.enrollmentToken,u.JWT_SECRET,function(e,r){e?n.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:r.id_user},{"services.enrollment":s.enrollmentToken}]},{projection:{_id:1,__v:1,username:1,active:1}}).then(function(e){e?e.active?n.send(JSON.stringify({error:!1,result:{user:e}})):n.send(JSON.stringify({error:!0,result:"Account is Disabled"})):n.send(JSON.stringify({error:!0,result:"Invalid User"}))},function(e){n.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}}),e.post("/setUserWithEnrollmentToken",bodyParser.json(),function(e,t){var n=this;if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)t.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var o=e.body,e=new simpl_schema_1.default({enrollmentToken:{type:String},password:{type:String}});try{e.validate(o)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/setUserWithEnrollmentToken)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithEnrollmentToken\n\nData Being Checked\n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void t.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(o.enrollmentToken,u.JWT_SECRET,function(r,s){return __awaiter(n,void 0,void 0,function(){var n=this;return __generator(this,function(e){return r?t.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:s.id_user},{"services.enrollment":o.enrollmentToken}]}).then(function(r){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?r.active?[4,user_collection_1.Users.setPassword(r,o.password)]:[3,2]:[3,4];case 1:return e.sent(),t.send(JSON.stringify({error:!1,result:!0})),[3,3];case 2:t.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=3;case 3:return[3,5];case 4:t.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=5;case 5:return[2]}})})},function(e){t.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))}),[2]})})})}}),e.post("/userWithForgotPasswordToken",bodyParser.json(),function(e,n){if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)n.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var s=e.body,e=new simpl_schema_1.default({forgotPasswordToken:{type:String}});try{e.validate(s)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/userWithForgotPasswordToken)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /userWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(s,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void n.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(s.forgotPasswordToken,u.JWT_SECRET,function(e,r){e?n.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:r.id_user},{"services.forgot_password":s.forgotPasswordToken}]},{projection:{_id:1,__v:1,username:1,active:1}}).then(function(e){e?e.active?n.send(JSON.stringify({error:!1,result:{user:e}})):n.send(JSON.stringify({error:!0,result:"Account is Disabled"})):n.send(JSON.stringify({error:!0,result:"Invalid Token"}))},function(e){n.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))})})}}),e.post("/setUserWithForgotPasswordToken",bodyParser.json(),function(e,t){var n=this;if(e.headers.origin!==u.ROOT_URL&&e.headers.origin!==u.SEC_ROOT_URL&&e.headers.origin!==u.RESOLVEIO_URL&&e.headers.origin!==u.RESOLVEIO_SECONDARY_URL)t.send(JSON.stringify({error:!0,result:"Invalid header"}));else{var o=e.body,e=new simpl_schema_1.default({forgotPasswordToken:{type:String},password:{type:String}});try{e.validate(o)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/setUserWithForgotPasswordToken)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /setUserWithForgotPasswordToken\n\nData Being Checked\n"+JSON.stringify(o,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),void t.send(JSON.stringify({error:!0,result:"Invalid Parameters"}))}jwt.verify(o.forgotPasswordToken,u.JWT_SECRET,function(r,s){return __awaiter(n,void 0,void 0,function(){var n=this;return __generator(this,function(e){return r?t.send(JSON.stringify({error:!0,result:"Invalid Token"})):user_collection_1.Users.findOne({$and:[{_id:s.id_user},{"services.forgot_password":o.forgotPasswordToken}]}).then(function(r){return __awaiter(n,void 0,void 0,function(){return __generator(this,function(e){switch(e.label){case 0:return r?r.active?[4,user_collection_1.Users.setPassword(r,o.password)]:[3,2]:[3,4];case 1:return e.sent(),t.send(JSON.stringify({error:!1,result:!0})),[3,3];case 2:t.send(JSON.stringify({error:!0,result:"Account is Disabled"})),e.label=3;case 3:return[3,5];case 4:t.send(JSON.stringify({error:!0,result:"Invalid User"})),e.label=5;case 5:return[2]}})})},function(e){t.send(JSON.stringify({error:!0,result:"Invalid Mongo Get User"}))}),[2]})})})}}),e.post("/resetPassword",bodyParser.json(),function(t,o){return __awaiter(r,void 0,void 0,function(){var r,n,s;return __generator(this,function(e){switch(e.label){case 0:return t.headers.origin===u.ROOT_URL||t.headers.origin===u.SEC_ROOT_URL?[3,1]:(o.send(JSON.stringify({error:!0,result:"Invalid header"})),[3,5]);case 1:r=t.body,n=new simpl_schema_1.default({username:{type:String}});try{n.validate(r)}catch(e){if(e)return console.error(new Date,"Error in HTTP Check (/resetPassword)",e),__1.ResolveIOServer.getMainServer().getMethodManager().sendEmail("dev@resolveio.com",__1.ResolveIOServer.getClientName()+"HTTP - Error Detected","Match Error On HTTP /resetPassword\n\nData Being Checked\n"+JSON.stringify(r,null,2)+"\n\nErrors\n"+JSON.stringify(e,null,2)),o.send(JSON.stringify({error:!0,result:"Invalid Parameters"})),[2]}return[4,user_collection_1.Users.findOne({active:!0,username:r.username})];case 2:return(s=e.sent())?[3,4]:[4,user_collection_1.Users.findOne({active:!0,email:r.username})];case 3:s=e.sent(),e.label=4;case 4:s&&d.getMethodManager().callMethodInternal.call(d.getMethodManager(),"resetUserPassword",s._id),o.send(JSON.stringify({error:!1,result:""})),e.label=5;case 5:return[2]}})})})}exports.setupAuthRoutes=setupAuthRoutes;
764
2
  //# sourceMappingURL=auth.js.map