@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
@@ -1,2 +1,303 @@
1
- "use strict";var __awaiter=this&&this.__awaiter||function(e,n,s,o){return new(s=s||Promise)(function(t,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?t(e.value):((r=e.value)instanceof s?r:new s(function(e){e(r)})).then(fulfilled,rejected)}step((o=o.apply(e,n||[])).next())})},__generator=this&&this.__generator||function(n,s){var o,i,a,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]},c={next:verb(0),throw:verb(1),return:verb(2)};return"function"==typeof Symbol&&(c[Symbol.iterator]=function(){return this}),c;function verb(t){return function(e){var r=[t,e];if(o)throw new TypeError("Generator is already executing.");for(;l=c&&r[c=0]?0:l;)try{if(o=1,i&&(a=2&r[0]?i.return:r[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,r[1])).done)return a;switch(i=0,(r=a?[2&r[0],a.value]:r)[0]){case 0:case 1:a=r;break;case 4:return l.label++,{value:r[1],done:!1};case 5:l.label++,i=r[1],r=[0];continue;case 7:r=l.ops.pop(),l.trys.pop();continue;default:if(!(a=0<(a=l.trys).length&&a[a.length-1])&&(6===r[0]||2===r[0])){l=0;continue}if(3===r[0]&&(!a||r[1]>a[0]&&r[1]<a[3]))l.label=r[1];else if(6===r[0]&&l.label<a[1])l.label=a[1],a=r;else{if(!(a&&l.label<a[2])){a[2]&&l.ops.pop(),l.trys.pop();continue}l.label=a[2],l.ops.push(r)}}r=s.call(n,l)}catch(e){r=[6,e],i=0}finally{o=a=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}}},handlebars=(Object.defineProperty(exports,"__esModule",{value:!0}),exports.loadAccountMethods=void 0,require("handlebars")),jwt=require("jsonwebtoken"),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 loadAccountMethods(e){e.methods({incorrectUser:{check:new simpl_schema_1.default({old_user:{type:Object,blackbox:!0},new_user:{type:Object,blackbox:!0},client_subs:{type:Array},"client_subs.$":{type:Object,blackbox:!0}}),function:function(t,n,s){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return resolveio_server_app_1.ResolveIOServer.getMainServer()?(r=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(this.id_ws),[4,this.sendEmail("dev@resolveio.com","SERVER - WRONG USER Detected - "+this.serverConfig.CLIENT_NAME,"Wrong User Sent!\nWS: "+JSON.stringify(r,null,2)+"\nUserMethod: "+this.user+"\nIdUserMethod: "+this.id_user+"\nSubManagerActiveSubs: "+JSON.stringify(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getActiveSubscriptions(),null,2)+"\nOldUser: "+JSON.stringify(t,null,2)+"\nNewUser: "+JSON.stringify(n,null,2)+"\nClientSubs: "+JSON.stringify(s,null,2))]):[3,2];case 1:e.sent(),e.label=2;case 2:return[2,Promise.resolve(null)]}})})}},reloadWS:{check:new simpl_schema_1.default({id_ws:String}),function:function(t){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return(r=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(t))?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(r)]:[3,2];case 1:return e.sent(),[2,!0];case 2:throw new Error("Error in Reload WS: No WS")}})})}},reconnectWS:{check:new simpl_schema_1.default({id_ws:String}),function:function(t){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return(r=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(t))?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(r)]:[3,2];case 1:return e.sent(),[2,!0];case 2:throw new Error("Error in Reconnect WS: No WS")}})})}},disconnectWS:{check:new simpl_schema_1.default({id_ws:String}),function:function(t){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return(r=resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(t))?[4,resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(r)]:[3,2];case 1:return e.sent(),[2,!0];case 2:throw new Error("Error in Disconnect WS: No WS")}})})}},createUserAndEmailEnrollment:{check:new simpl_schema_1.default({newUser:{type:user_collection_1.Users.simplschema},sendEnrollmentEmail:{type:Boolean,optional:!0}}),function:function(n,s){return void 0===s&&(s=!0),__awaiter(this,void 0,void 0,function(){var r,t;return __generator(this,function(e){switch(e.label){case 0:if("admin"!==n.username.toLocaleLowerCase())return[3,1];throw new Error("Error in Create User And Email Enrollment: Username can not be admin");case 1:return[4,user_collection_1.Users.findOne({$or:[{username:n.username.toLocaleLowerCase()},{email:n.email.toLocaleLowerCase()}]})];case 2:if(e.sent())throw new Error("Error in Create User And Email Enrollment: Username/Email is already used");e.label=3;case 3:return n._id=(0,common_1.objectIdHexString)(),n.services={enrollment:jwt.sign({id_user:n._id},this.serverConfig.JWT_SECRET,{expiresIn:2592e5})},n.is_customer=!1,[4,user_collection_1.Users.insertOne(n)];case 4:if(e.sent(),!s)return[3,9];r={fullname:n.fullname,user:this.user,url:this.serverConfig.ROOT_URL+"/enroll-account?"+encodeURIComponent(this.serverConfig.SERVER_URL)+"&"+n.services.enrollment},e.label=5;case 5:return e.trys.push([5,7,,8]),t=this.readFile("email-templates/enrollment.html"),t=handlebars.compile(t),handlebars.registerHelper("equals",function(e,r){return e===r}),[4,this.sendEmail(n.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Enrollment Email","",t(r),null,null,"")];case 6:return e.sent(),[2,n];case 7:throw(t=e.sent()).message="Error in Create User And Email Enrollment: email-templates/enrollment.html - ".concat(t.message),t;case 8:return[3,10];case 9:return[2,n];case 10:return[2]}})})}},resetUserPassword:{check:new simpl_schema_1.default({userId:{type:String}}),function:function(s){return __awaiter(this,void 0,void 0,function(){var r,t,n;return __generator(this,function(e){switch(e.label){case 0:return[4,user_collection_1.Users.findOne({_id:s})];case 1:if(!(r=e.sent()))return[3,6];r.services||(r.services={}),r.services.forgot_password=jwt.sign({id_user:s},this.serverConfig.JWT_SECRET),t={userToChangePassword:r.fullname,userWhoResetPassword:this.user,url:this.serverConfig.ROOT_URL+"/forgot-password?"+encodeURIComponent(this.serverConfig.SERVER_URL)+"&"+r.services.forgot_password},e.label=2;case 2:return e.trys.push([2,5,,6]),[4,user_collection_1.Users.updateOne({_id:r._id},{$set:{services:r.services,attempts:0}})];case 3:return e.sent(),n=this.readFile("email-templates/forgot-password.html"),n=handlebars.compile(n),handlebars.registerHelper("equals",function(e,r){return e===r}),[4,this.sendEmail(r.email,"ResolveIO ("+resolveio_server_app_1.ResolveIOServer.getClientName()+") - Forgot Password","",n(t),null,null,"")];case 4:return e.sent(),[2,!0];case 5:throw(n=e.sent()).message="Error in Reset User Password: email-templates/forgot-password.html - ".concat(n.message),n;case 6:throw new Error("Error in Reset User Password: Invalid User")}})})}},setUserPassword:{check:new simpl_schema_1.default({userId:{type:String},password:{type:String}}),function:function(t,n){return __awaiter(this,void 0,void 0,function(){var r;return __generator(this,function(e){switch(e.label){case 0:return[4,user_collection_1.Users.findOne({_id:t})];case 1:return!(r=e.sent())||r.roles.super_admin?[3,3]:[4,user_collection_1.Users.setPassword(r,n)];case 2:return e.sent(),[2,!0];case 3:throw new Error("Error in Set User Password: Invalid User")}})})}}})}exports.loadAccountMethods=loadAccountMethods;
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.loadAccountMethods = void 0;
40
+ var handlebars = require("handlebars");
41
+ var jwt = require("jsonwebtoken");
42
+ var simpl_schema_1 = require("simpl-schema");
43
+ var user_collection_1 = require("../collections/user.collection");
44
+ var resolveio_server_app_1 = require("../resolveio-server-app");
45
+ var common_1 = require("../util/common");
46
+ function loadAccountMethods(methodManager) {
47
+ methodManager.methods({
48
+ incorrectUser: {
49
+ check: new simpl_schema_1.default({
50
+ old_user: {
51
+ type: Object,
52
+ blackbox: true
53
+ },
54
+ new_user: {
55
+ type: Object,
56
+ blackbox: true
57
+ },
58
+ client_subs: {
59
+ type: Array
60
+ },
61
+ 'client_subs.$': {
62
+ type: Object,
63
+ blackbox: true
64
+ }
65
+ }),
66
+ function: function (old_user, new_user, client_subs) {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var ws;
69
+ return __generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ if (!resolveio_server_app_1.ResolveIOServer.getMainServer()) return [3 /*break*/, 2];
73
+ ws = resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(this.id_ws);
74
+ return [4 /*yield*/, this.sendEmail('dev@resolveio.com', 'SERVER - WRONG USER Detected - ' + this.serverConfig['CLIENT_NAME'], 'Wrong User Sent!\nWS: ' + JSON.stringify(ws, null, 2) + '\nUserMethod: ' + this.user + '\nIdUserMethod: ' + this.id_user + '\nSubManagerActiveSubs: ' + JSON.stringify(resolveio_server_app_1.ResolveIOServer.getMainServer().getSubscriptionManager().getActiveSubscriptions(), null, 2) + '\nOldUser: ' + JSON.stringify(old_user, null, 2) + '\nNewUser: ' + JSON.stringify(new_user, null, 2) + '\nClientSubs: ' + JSON.stringify(client_subs, null, 2))];
75
+ case 1:
76
+ _a.sent();
77
+ _a.label = 2;
78
+ case 2: return [2 /*return*/, Promise.resolve(null)];
79
+ }
80
+ });
81
+ });
82
+ }
83
+ },
84
+ reloadWS: {
85
+ check: new simpl_schema_1.default({
86
+ id_ws: String
87
+ }),
88
+ function: function (id_ws) {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ var ws;
91
+ return __generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ ws = resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);
95
+ if (!ws) return [3 /*break*/, 2];
96
+ return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(ws)];
97
+ case 1:
98
+ _a.sent();
99
+ return [2 /*return*/, true];
100
+ case 2: throw new Error('Error in Reload WS: No WS');
101
+ }
102
+ });
103
+ });
104
+ }
105
+ },
106
+ reconnectWS: {
107
+ check: new simpl_schema_1.default({
108
+ id_ws: String
109
+ }),
110
+ function: function (id_ws) {
111
+ return __awaiter(this, void 0, void 0, function () {
112
+ var ws;
113
+ return __generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0:
116
+ ws = resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);
117
+ if (!ws) return [3 /*break*/, 2];
118
+ return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(ws)];
119
+ case 1:
120
+ _a.sent();
121
+ return [2 /*return*/, true];
122
+ case 2: throw new Error('Error in Reconnect WS: No WS');
123
+ }
124
+ });
125
+ });
126
+ }
127
+ },
128
+ disconnectWS: {
129
+ check: new simpl_schema_1.default({
130
+ id_ws: String
131
+ }),
132
+ function: function (id_ws) {
133
+ return __awaiter(this, void 0, void 0, function () {
134
+ var ws;
135
+ return __generator(this, function (_a) {
136
+ switch (_a.label) {
137
+ case 0:
138
+ ws = resolveio_server_app_1.ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);
139
+ if (!ws) return [3 /*break*/, 2];
140
+ return [4 /*yield*/, resolveio_server_app_1.ResolveIOServer.getMainServer().unsubscribeWS(ws)];
141
+ case 1:
142
+ _a.sent();
143
+ return [2 /*return*/, true];
144
+ case 2: throw new Error('Error in Disconnect WS: No WS');
145
+ }
146
+ });
147
+ });
148
+ }
149
+ },
150
+ createUserAndEmailEnrollment: {
151
+ check: new simpl_schema_1.default({
152
+ newUser: {
153
+ type: user_collection_1.Users['simplschema']
154
+ },
155
+ sendEnrollmentEmail: {
156
+ type: Boolean,
157
+ optional: true
158
+ }
159
+ }),
160
+ function: function (newUser, sendEnrollmentEmail) {
161
+ if (sendEnrollmentEmail === void 0) { sendEnrollmentEmail = true; }
162
+ return __awaiter(this, void 0, void 0, function () {
163
+ var otherUser, emailData, html, template, err_1;
164
+ return __generator(this, function (_a) {
165
+ switch (_a.label) {
166
+ case 0:
167
+ if (!(newUser.username.toLocaleLowerCase() === 'admin')) return [3 /*break*/, 1];
168
+ throw new Error('Error in Create User And Email Enrollment: Username can not be admin');
169
+ case 1: return [4 /*yield*/, user_collection_1.Users.findOne({
170
+ $or: [
171
+ { username: newUser.username.toLocaleLowerCase() },
172
+ { email: newUser.email.toLocaleLowerCase() }
173
+ ]
174
+ })];
175
+ case 2:
176
+ otherUser = _a.sent();
177
+ if (otherUser) {
178
+ throw new Error('Error in Create User And Email Enrollment: Username/Email is already used');
179
+ }
180
+ _a.label = 3;
181
+ case 3:
182
+ newUser._id = (0, common_1.objectIdHexString)();
183
+ newUser.services = {
184
+ enrollment: jwt.sign({ id_user: newUser._id }, this.serverConfig['JWT_SECRET'], {
185
+ expiresIn: 3 * 24 * 60 * 60 * 1000 // 3 days
186
+ })
187
+ };
188
+ newUser.is_customer = false;
189
+ return [4 /*yield*/, user_collection_1.Users.insertOne(newUser)];
190
+ case 4:
191
+ _a.sent();
192
+ if (!sendEnrollmentEmail) return [3 /*break*/, 9];
193
+ emailData = {
194
+ fullname: newUser.fullname,
195
+ user: this.user,
196
+ url: (this.serverConfig['ROOT_URL'] + '/enroll-account?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + newUser.services['enrollment'])
197
+ };
198
+ _a.label = 5;
199
+ case 5:
200
+ _a.trys.push([5, 7, , 8]);
201
+ html = this.readFile('email-templates/enrollment.html');
202
+ template = handlebars.compile(html);
203
+ handlebars.registerHelper('equals', function (a, b) {
204
+ return a === b;
205
+ });
206
+ return [4 /*yield*/, this.sendEmail(newUser.email, 'ResolveIO (' + resolveio_server_app_1.ResolveIOServer.getClientName() + ') - Enrollment Email', '', template(emailData), null, null, '')];
207
+ case 6:
208
+ _a.sent();
209
+ return [2 /*return*/, newUser];
210
+ case 7:
211
+ err_1 = _a.sent();
212
+ err_1.message = "Error in Create User And Email Enrollment: email-templates/enrollment.html - ".concat(err_1.message);
213
+ throw err_1;
214
+ case 8: return [3 /*break*/, 10];
215
+ case 9: return [2 /*return*/, newUser];
216
+ case 10: return [2 /*return*/];
217
+ }
218
+ });
219
+ });
220
+ }
221
+ },
222
+ resetUserPassword: {
223
+ check: new simpl_schema_1.default({
224
+ userId: {
225
+ type: String
226
+ }
227
+ }),
228
+ function: function (userId) {
229
+ return __awaiter(this, void 0, void 0, function () {
230
+ var user, emailData, html, template, err_2;
231
+ return __generator(this, function (_a) {
232
+ switch (_a.label) {
233
+ case 0: return [4 /*yield*/, user_collection_1.Users.findOne({ _id: userId })];
234
+ case 1:
235
+ user = _a.sent();
236
+ if (!user) return [3 /*break*/, 6];
237
+ if (!user.services) {
238
+ user.services = {};
239
+ }
240
+ user.services['forgot_password'] = jwt.sign({ id_user: userId }, this.serverConfig['JWT_SECRET']);
241
+ emailData = {
242
+ userToChangePassword: user.fullname,
243
+ userWhoResetPassword: this.user,
244
+ url: (this.serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])
245
+ };
246
+ _a.label = 2;
247
+ case 2:
248
+ _a.trys.push([2, 5, , 6]);
249
+ return [4 /*yield*/, user_collection_1.Users.updateOne({ _id: user._id }, { $set: { services: user.services, attempts: 0 } })];
250
+ case 3:
251
+ _a.sent();
252
+ html = this.readFile('email-templates/forgot-password.html');
253
+ template = handlebars.compile(html);
254
+ handlebars.registerHelper('equals', function (a, b) {
255
+ return a === b;
256
+ });
257
+ return [4 /*yield*/, this.sendEmail(user.email, 'ResolveIO (' + resolveio_server_app_1.ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '')];
258
+ case 4:
259
+ _a.sent();
260
+ return [2 /*return*/, true];
261
+ case 5:
262
+ err_2 = _a.sent();
263
+ err_2.message = "Error in Reset User Password: email-templates/forgot-password.html - ".concat(err_2.message);
264
+ throw err_2;
265
+ case 6: throw new Error('Error in Reset User Password: Invalid User');
266
+ }
267
+ });
268
+ });
269
+ }
270
+ },
271
+ setUserPassword: {
272
+ check: new simpl_schema_1.default({
273
+ userId: {
274
+ type: String
275
+ },
276
+ password: {
277
+ type: String
278
+ }
279
+ }),
280
+ function: function (userId, password) {
281
+ return __awaiter(this, void 0, void 0, function () {
282
+ var user;
283
+ return __generator(this, function (_a) {
284
+ switch (_a.label) {
285
+ case 0: return [4 /*yield*/, user_collection_1.Users.findOne({ _id: userId })];
286
+ case 1:
287
+ user = _a.sent();
288
+ if (!(user && !user.roles.super_admin)) return [3 /*break*/, 3];
289
+ return [4 /*yield*/, user_collection_1.Users.setPassword(user, password)];
290
+ case 2:
291
+ _a.sent();
292
+ return [2 /*return*/, true];
293
+ case 3: throw new Error('Error in Set User Password: Invalid User');
294
+ }
295
+ });
296
+ });
297
+ }
298
+ }
299
+ });
300
+ }
301
+ exports.loadAccountMethods = loadAccountMethods;
302
+
2
303
  //# sourceMappingURL=accounts.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/methods/accounts.ts"],"names":["handlebars","require","jwt","simpl_schema_1","user_collection_1","resolveio_server_app_1","common_1","loadAccountMethods","methodManager","methods","incorrectUser","check","default","old_user","type","Object","blackbox","new_user","client_subs","Array","client_subs.$","function","ResolveIOServer","getMainServer","ws","getWebSocketManager","getWebSocket","this","id_ws","sendEmail","serverConfig","JSON","stringify","user","id_user","getSubscriptionManager","getActiveSubscriptions","_a","sent","Promise","resolve","reloadWS","String","unsubscribeWS","Error","reconnectWS","disconnectWS","createUserAndEmailEnrollment","newUser","Users","sendEnrollmentEmail","Boolean","optional","username","toLocaleLowerCase","findOne","$or","email","_id","objectIdHexString","services","enrollment","sign","expiresIn","is_customer","insertOne","emailData","fullname","url","encodeURIComponent","html","readFile","template","compile","registerHelper","a","b","getClientName","message","concat","err_1","resetUserPassword","userId","userToChangePassword","userWhoResetPassword","updateOne","$set","attempts","err_2","setUserPassword","password","roles","super_admin","setPassword","exports"],"mappings":"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","file":"accounts.js","sourcesContent":["import * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { UserModel } from '../models/user.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function loadAccountMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tincorrectUser: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\told_user: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tnew_user: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tclient_subs: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'client_subs.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(old_user, new_user, client_subs) {\n\t\t\t\tif (ResolveIOServer.getMainServer()) {\n\t\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(this.id_ws);\n\t\t\t\t\tawait this.sendEmail('dev@resolveio.com', 'SERVER - WRONG USER Detected - ' + this.serverConfig['CLIENT_NAME'], 'Wrong User Sent!\\nWS: ' + JSON.stringify(ws, null, 2) + '\\nUserMethod: ' + this.user + '\\nIdUserMethod: ' + this.id_user + '\\nSubManagerActiveSubs: ' + JSON.stringify(ResolveIOServer.getMainServer().getSubscriptionManager().getActiveSubscriptions(), null, 2) + '\\nOldUser: ' + JSON.stringify(old_user, null, 2) + '\\nNewUser: ' + JSON.stringify(new_user, null, 2) + '\\nClientSubs: ' + JSON.stringify(client_subs, null, 2));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.resolve(null);\n\t\t\t}\n\t\t},\n\t\treloadWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Reload WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\treconnectWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Reconnect WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdisconnectWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Disconnect WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcreateUserAndEmailEnrollment: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tnewUser: {\n\t\t\t\t\ttype: Users['simplschema']\n\t\t\t\t},\n\t\t\t\tsendEnrollmentEmail: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(newUser: UserModel, sendEnrollmentEmail = true) {\n\t\t\t\tif (newUser.username.toLocaleLowerCase() === 'admin') {\n\t\t\t\t\tthrow new Error('Error in Create User And Email Enrollment: Username can not be admin');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet otherUser = await Users.findOne({\n\t\t\t\t\t\t$or: [\n\t\t\t\t\t\t\t{username: newUser.username.toLocaleLowerCase()},\n\t\t\t\t\t\t\t{email: newUser.email.toLocaleLowerCase()}\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\n\t\t\t\t\tif (otherUser) {\n\t\t\t\t\t\tthrow new Error('Error in Create User And Email Enrollment: Username/Email is already used');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tnewUser._id = objectIdHexString();\n\n\t\t\t\tnewUser.services = {\n\t\t\t\t\tenrollment: jwt.sign({id_user: newUser._id}, this.serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t})\n\t\t\t\t};\n\n\t\t\t\tnewUser.is_customer = false;\n\t\t\t\tawait Users.insertOne(newUser);\n\n\t\t\t\tif (sendEnrollmentEmail) {\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tfullname: newUser.fullname,\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\turl: (this.serverConfig['ROOT_URL'] + '/enroll-account?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + newUser.services['enrollment'])\n\t\t\t\t\t};\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet html = this.readFile('email-templates/enrollment.html');\n\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait this.sendEmail(newUser.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Enrollment Email', '', template(emailData), null, null, '');\n\n\t\t\t\t\t\treturn newUser;\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.message = `Error in Create User And Email Enrollment: email-templates/enrollment.html - ${err.message}`;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn newUser;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tresetUserPassword: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(userId: string) {\n\t\t\t\tlet user = await Users.findOne({_id: userId});\n\t\n\t\t\t\tif (user) {\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: userId}, this.serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: this.user,\n\t\t\t\t\t\turl: (this.serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services, attempts: 0}});\n\t\t\t\t\t\tlet html = this.readFile('email-templates/forgot-password.html');\n\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tawait this.sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.message = `Error in Reset User Password: email-templates/forgot-password.html - ${err.message}`;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow new Error('Error in Reset User Password: Invalid User');\n\t\t\t}\n\t\t},\n\t\tsetUserPassword: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(userId: string, password: string) {\n\t\t\t\tlet user = await Users.findOne({_id: userId});\n\t\n\t\t\t\tif (user && !user.roles.super_admin) {\n\t\t\t\t\tawait Users.setPassword(user, password);\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Set User Password: Invalid User');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"]}
1
+ {"version":3,"sources":["../../src/methods/accounts.ts"],"names":[],"mappings":"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","file":"accounts.js","sourcesContent":["import * as handlebars from 'handlebars';\nimport * as jwt from 'jsonwebtoken';\nimport SimpleSchema from 'simpl-schema';\nimport { Users } from '../collections/user.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { UserModel } from '../models/user.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString } from '../util/common';\n\nexport function loadAccountMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tincorrectUser: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\told_user: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tnew_user: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tclient_subs: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'client_subs.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(old_user, new_user, client_subs) {\n\t\t\t\tif (ResolveIOServer.getMainServer()) {\n\t\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(this.id_ws);\n\t\t\t\t\tawait this.sendEmail('dev@resolveio.com', 'SERVER - WRONG USER Detected - ' + this.serverConfig['CLIENT_NAME'], 'Wrong User Sent!\\nWS: ' + JSON.stringify(ws, null, 2) + '\\nUserMethod: ' + this.user + '\\nIdUserMethod: ' + this.id_user + '\\nSubManagerActiveSubs: ' + JSON.stringify(ResolveIOServer.getMainServer().getSubscriptionManager().getActiveSubscriptions(), null, 2) + '\\nOldUser: ' + JSON.stringify(old_user, null, 2) + '\\nNewUser: ' + JSON.stringify(new_user, null, 2) + '\\nClientSubs: ' + JSON.stringify(client_subs, null, 2));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.resolve(null);\n\t\t\t}\n\t\t},\n\t\treloadWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Reload WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\treconnectWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Reconnect WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tdisconnectWS: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tid_ws: String\n\t\t\t}),\n\t\t\tfunction: async function(id_ws) {\n\t\t\t\tlet ws = ResolveIOServer.getMainServer().getWebSocketManager().getWebSocket(id_ws);\n\n\t\t\t\tif (ws) {\n\t\t\t\t\tawait ResolveIOServer.getMainServer().unsubscribeWS(ws);\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Disconnect WS: No WS');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcreateUserAndEmailEnrollment: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tnewUser: {\n\t\t\t\t\ttype: Users['simplschema']\n\t\t\t\t},\n\t\t\t\tsendEnrollmentEmail: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(newUser: UserModel, sendEnrollmentEmail = true) {\n\t\t\t\tif (newUser.username.toLocaleLowerCase() === 'admin') {\n\t\t\t\t\tthrow new Error('Error in Create User And Email Enrollment: Username can not be admin');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet otherUser = await Users.findOne({\n\t\t\t\t\t\t$or: [\n\t\t\t\t\t\t\t{username: newUser.username.toLocaleLowerCase()},\n\t\t\t\t\t\t\t{email: newUser.email.toLocaleLowerCase()}\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\n\t\t\t\t\tif (otherUser) {\n\t\t\t\t\t\tthrow new Error('Error in Create User And Email Enrollment: Username/Email is already used');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tnewUser._id = objectIdHexString();\n\n\t\t\t\tnewUser.services = {\n\t\t\t\t\tenrollment: jwt.sign({id_user: newUser._id}, this.serverConfig['JWT_SECRET'], {\n\t\t\t\t\t\texpiresIn : 3 * 24 * 60 * 60 * 1000 // 3 days\n\t\t\t\t\t})\n\t\t\t\t};\n\n\t\t\t\tnewUser.is_customer = false;\n\t\t\t\tawait Users.insertOne(newUser);\n\n\t\t\t\tif (sendEnrollmentEmail) {\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tfullname: newUser.fullname,\n\t\t\t\t\t\tuser: this.user,\n\t\t\t\t\t\turl: (this.serverConfig['ROOT_URL'] + '/enroll-account?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + newUser.services['enrollment'])\n\t\t\t\t\t};\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlet html = this.readFile('email-templates/enrollment.html');\n\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait this.sendEmail(newUser.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Enrollment Email', '', template(emailData), null, null, '');\n\n\t\t\t\t\t\treturn newUser;\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.message = `Error in Create User And Email Enrollment: email-templates/enrollment.html - ${err.message}`;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn newUser;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tresetUserPassword: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(userId: string) {\n\t\t\t\tlet user = await Users.findOne({_id: userId});\n\t\n\t\t\t\tif (user) {\n\t\t\t\t\tif (!user.services) {\n\t\t\t\t\t\tuser.services = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tuser.services['forgot_password'] = jwt.sign({id_user: userId}, this.serverConfig['JWT_SECRET']);\n\n\t\t\t\t\tlet emailData = {\n\t\t\t\t\t\tuserToChangePassword: user.fullname,\n\t\t\t\t\t\tuserWhoResetPassword: this.user,\n\t\t\t\t\t\turl: (this.serverConfig['ROOT_URL'] + '/forgot-password?' + encodeURIComponent(this.serverConfig['SERVER_URL']) + '&' + user.services['forgot_password'])\n\t\t\t\t\t};\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait Users.updateOne({_id: user._id}, {$set: {services: user.services, attempts: 0}});\n\t\t\t\t\t\tlet html = this.readFile('email-templates/forgot-password.html');\n\t\t\t\t\t\tlet template = handlebars.compile(html);\n\t\t\t\t\t\thandlebars.registerHelper('equals', (a, b) => {\n\t\t\t\t\t\t\treturn a === b;\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tawait this.sendEmail(user.email, 'ResolveIO (' + ResolveIOServer.getClientName() + ') - Forgot Password', '', template(emailData), null, null, '');\n\t\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\terr.message = `Error in Reset User Password: email-templates/forgot-password.html - ${err.message}`;\n\t\t\t\t\t\tthrow err;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow new Error('Error in Reset User Password: Invalid User');\n\t\t\t}\n\t\t},\n\t\tsetUserPassword: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(userId: string, password: string) {\n\t\t\t\tlet user = await Users.findOne({_id: userId});\n\t\n\t\t\t\tif (user && !user.roles.super_admin) {\n\t\t\t\t\tawait Users.setPassword(user, password);\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow new Error('Error in Set User Password: Invalid User');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}"]}