@resolveio/server-lib 20.7.120 → 20.7.121

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