Guest User

Untitled

a guest
Jan 9th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.79 KB | None | 0 0
  1. var utility = require('./utility');
  2. var mongodbhelper = require('./mongodbhelper');
  3. var ObjectID = require('mongodb').ObjectID;
  4. var encrypt = require('./passwordencrypt');
  5. var license = require('./../license/licenseManagement');
  6. var AppConstants = require('./../utility/AppConstants');
  7. var invitationMail = require('../utility/userInvitationMail');
  8. var logger = require('./logger');
  9. var mailutility = require('../utility/mailutility');
  10. var encryptDecrypt = require('../utility/encryptDecrypt');
  11. var QRCode = require('qrcode');
  12. module.exports = {
  13. addUser: function (req, res) {
  14. var customerId = req.session.customerid;
  15. var data = req.body.userData;
  16. if (!customerId) {
  17. utility.responseSuccessFalse(res, 'customer id invalid');
  18. return;
  19. }
  20. if (!data || data.length == 0) {
  21. utility.responseSuccessFalse(res, 'No data to save');
  22. return;
  23. }
  24.  
  25. var subAdmin = data[0];
  26. if (utility.validate.email(subAdmin['email']) && subAdmin['password'] && subAdmin['fname']) {
  27. var query = { email: subAdmin['email'], customerId: customerId };
  28. mongodbhelper.find(mongodbhelper.col_userdetail, query)
  29. .then((data) => {
  30. if (data.length == 0) {
  31. if (subAdmin['id']) {
  32. delete subAdmin['id'];
  33. }
  34. if (subAdmin['customerID']) {
  35. delete subAdmin['customerID'];
  36. }
  37.  
  38. subAdmin['disabled'] = false;
  39. subAdmin['userType'] = 'admin';
  40. subAdmin['customerId'] = customerId;
  41.  
  42.  
  43. encrypt.encrypt(subAdmin.password)
  44. .then((hash) => {
  45. var oldPassword = subAdmin['password'];
  46. subAdmin['password'] = hash;
  47. mongodbhelper.insertData(mongodbhelper.col_userdetail, subAdmin)
  48. .then((response) => {
  49. try {
  50. var loginUI = ` <tr>
  51. <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">Login URL</td>
  52. <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">:&nbsp;&nbsp;<a href="%DOMAINNAME%" style="color:#33b5e5;"><b>%DOMAINNAME%</b></a></td>
  53. </tr> `;
  54. var isEmailsent = utility.sendUserInvitationMail(subAdmin.email, oldPassword,
  55. subAdmin.fname, AppConstants.adminUserInviteMessg, AppConstants.adminUserInviteSub, loginUI);
  56. } catch (error) {
  57.  
  58. }
  59. utility.responseSuccess(res, response);
  60. })
  61. .catch((err) => {
  62. utility.responseSuccessFalse(res, err);
  63. })
  64. })
  65. .catch((err) => {
  66. utility.responseSuccessFalse(res, 'something went wrong');
  67. });
  68. } else {
  69. utility.responseSuccessFalse(res, 'email already exist');
  70. }
  71. })
  72. .catch((err) => {
  73. console.log(err)
  74. utility.responseSuccessFalse(res, err);
  75. })
  76. } else {
  77. utility.responseSuccessFalse(res, 'user not found');
  78. }
  79.  
  80.  
  81.  
  82. // userdetails = {
  83. // contactNumber: req.body.contactNumber,
  84. // email: req.body.email,
  85. // fname: req.body.fname,
  86. // lname: req.body.lname,
  87. // displayName: req.body.fname + ' ' + (req.body.lname.length > 0 ? req.body.lname : ''),
  88. // profile_picture: "",
  89. // username: req.body.fname + ' ' + req.body.lname,
  90. // password: req.body.password,
  91. // userType: "admin",
  92. // disabled: false,
  93. // id: user.uid
  94. // }
  95.  
  96.  
  97. // var loginUI = ` <tr>
  98. // <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">Login URL</td>
  99. // <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">:&nbsp;&nbsp;<a href="%DOMAINNAME%" style="color:#33b5e5;"><b>%DOMAINNAME%</b></a></td>
  100. // </tr> `;
  101. // var isEmailsent = utility.sendUserInvitationMail(userdetails.email, userdetails.password,
  102. // userdetails.displayName, appconstants.adminUserInviteMessg, appconstants.adminUserInviteSub, loginUI);
  103. // utility.responseSuccess(res, {});
  104.  
  105.  
  106.  
  107. },
  108. inviteUsers: function (req, res) {
  109. let data = req.body;
  110. let userData = [];
  111. let result = {}, invitedCount, notInvitedCount;
  112. if (data && data.length > 0) {
  113.  
  114. for (let i = 0; i < data.length; i++) {
  115. userData.push({ _id: ObjectID(data[i]), invited: false })
  116. }
  117. let tableName = mongodbhelper.col_contactdetail;
  118. let query = { $or: userData }
  119. mongodbhelper.find(tableName, query)
  120. .then(contactUserData => {
  121. if (contactUserData && contactUserData.length > 0) {
  122. invitedCount = contactUserData.length;
  123. notInvitedCount = data.length - invitedCount;
  124. result = {
  125. invited: {
  126. count: invitedCount,
  127. message: " contact(s) invited"
  128. },
  129. notInvitedCount: {
  130. count: notInvitedCount,
  131. message: " contact(s) already invited"
  132. },
  133. totalCount: data.length
  134. }
  135. mongodbhelper.findOne(mongodbhelper.col_customerdetails, { customerId: req.session.data.customerId })
  136. .then(adminData => {
  137. for (let i = 0; i < contactUserData.length; i++) {
  138. let query2 = { _id: ObjectID(contactUserData[i]._id) }
  139. let pass = utility.getGUID().split('-')[0]
  140. let info = encryptDecrypt.encrypt(contactUserData[i].EmailAddress, pass);
  141. let updateData = { $set: { invited: true, password: info['encryptPassword'] } }
  142. mongodbhelper.updateData(tableName, query2, updateData)
  143. .then(updateData => {
  144. let qrcodeVal = info['encryptEmail'] + ' \n ' + info['encryptPassword'];
  145. QRCode.toDataURL(qrcodeVal, function (err, url) {
  146. sendUserInvitationMailForContacts(url, adminData.username, adminData.companyName, contactUserData[i].EmailAddress, pass,
  147. contactUserData[i].FirstName, AppConstants.contactUserInviteMessg, AppConstants.contactUserInviteMessg2, AppConstants.contactUserInviteSub, "", req.session.data.customerId);
  148.  
  149. })
  150. })
  151. .catch(err => console.log(err))
  152. }
  153. })
  154. .catch(err => console.log(err))
  155. utility.responseSuccess(res, result)
  156. } else {
  157. utility.responseSuccessFalse(res, "No contacts found to invite")
  158. }
  159. })
  160. .catch(err => console.log(err))
  161.  
  162. } else {
  163. let message = "nothing to send"
  164. utility.responseSuccessFalse(res, message)
  165. }
  166.  
  167. }
  168. }
  169.  
  170.  
  171.  
  172. function sendUserInvitationMailForContacts(url, adminFirstName, companyName, email, pswd, displayname, messg, messg2, sub, loginUrl, custId) {
  173.  
  174. messg = messg.replace(/%admin_firstname%/g, adminFirstName);
  175. messg = messg.replace(/%company_name%/g, companyName);
  176.  
  177. sub = sub.replace(/%company_name%/g, companyName);
  178.  
  179. var generateQRCode = AppConstants.generateQRCodeUrl + '?username=' + email + '&password=' + pswd + '&customerid=' + custId;
  180.  
  181. var html = invitationMail.html_contact;
  182. html = html.replace(/%LOGINUI%/g, loginUrl).replace(/%DOMAINNAME%/g, AppConstants.serverUrl + AppConstants.loginPage)
  183. .replace(/%%CustomerName%%/g, displayname)
  184. .replace(/%PASSWORD%/g, pswd)
  185. .replace(/%EMAIL%/g, email)
  186. .replace(/%InviteMessage%/g, messg)
  187. .replace(/%InviteMessage2%/g, messg2)
  188. .replace(/%APP_STORE%/g, AppConstants.contactUserInvite_AppStoreLink)
  189. .replace(/%PLAY_STORE%/g, AppConstants.contactUserInvite_PlayStoreLink)
  190. .replace(/%SLOGAN%/g, AppConstants.contactUserInviteSlogan)
  191. // .replace(/%OR_CODE%/g, url)
  192. .replace(/%QR_CODE_URL%/g, generateQRCode);
  193.  
  194.  
  195. var template = html;
  196.  
  197. mailutility.sendMail({
  198. from: AppConstants.emailMailAddr, // sender address
  199. 'h:Reply-To': AppConstants.replyMailAddr,
  200. to: email, // list of receivers
  201. subject: sub, // Subject line
  202. html: template,
  203. });
  204.  
  205. return { success: true };
  206. }
Add Comment
Please, Sign In to add comment