@resolveio/server-lib 12.5.54 → 12.5.56

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