Advertisement
Guest User

Untitled

a guest
Feb 9th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.15 KB | None | 0 0
  1. var _ = require('underscore');
  2. //var qs = require('qs');
  3. var cookie = require('cookie');
  4. var http = require('https');
  5. var wsapi = require('../lib/wsapi')('v1account');
  6. var crypto = require('crypto');
  7. var fs = require('fs');
  8. var log = require('../lib/ws-history')();
  9.  
  10. var tk = require('../lib/ws-token');
  11. console.log('LOOOOGGGGGGGGGGTTTTKKKKKKK', tk);
  12.  
  13.  
  14.  
  15. var mail = require('../lib/ws-mailer')();
  16. var otnDid = require('../lib/diddyn/diddyn/wsr');
  17.  
  18. console.log('OTN', otnDid);
  19. module.exports = function(app) {
  20.  
  21.  
  22. // require('wsapi').debug();
  23.  
  24. var is_auth = function(req) {
  25. return ('session' in req) && (req.session.accountId !== null && req.session.accountId !== undefined);
  26. };
  27.  
  28. var version = function(real, cb) {
  29. if (real === true) {
  30. var a = __dirname.split('/');
  31. cb(a[a.length - 2]);
  32. } else {
  33. fs.readFile('../../version', function(err, res) {
  34. console.log(err, res);
  35. if (err) {
  36. version(true, cb);
  37. } else {
  38. cb('' + res);
  39. }
  40. });
  41. }
  42. }
  43. app.get('/api/v2/version', function(req, res, next) {
  44. if ('full' in req.query && req.query.full == 1) {
  45. console.log('A');
  46. version(true, function(v1) {
  47. console.log('B');
  48. version(false, function(v2) {
  49. res.send([v1, v2, app.get('env')]);
  50. });
  51. });
  52. } else {
  53. version(true, function(v) {
  54. res.send(v);
  55. });
  56. }
  57. });
  58. app.get('/api/v2/current', function(req, res, next) {
  59. version(false, function(v) {
  60. res.send(v);
  61. });
  62. });
  63. app.post('/api/user/add', function(req, res, next) {
  64.  
  65. if (req.body.passauto == 'true') {
  66. var randomstring = Math.random().toString(36).slice(-8);
  67. console.log("password generate", randomstring);
  68. req.body.pass = randomstring;
  69. req.body.passauto = false;
  70. }
  71.  
  72. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  73. if (err) {
  74. res.json({});
  75. } else {
  76. console.log('BBEEEFOOORREE LLOOGGGUSSSERRR');
  77.  
  78. var idAddUser = {
  79. data: data.id,
  80. };
  81. var logUser = {
  82. name: req.body.name,
  83. level: req.body.level,
  84. email: req.body.email,
  85. login: req.body.login,
  86. type: "user"
  87. };
  88. logUser['id'] = idAddUser;
  89. testid = idAddUser.data;
  90.  
  91. var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  92. var token = '';
  93. for (var i = 16; i > 0; --i) {
  94. token += chars[Math.round(Math.random() * (chars.length - 1))];
  95. }
  96. // penser a crypter le token var hash = bcrypt.hashSync(token, 8);
  97.  
  98. var expires = new Date();
  99. expires.setHours(expires.getHours() + 6);
  100. console.log('EXPPPPIIIERRRERERE', expires);
  101.  
  102. logUser.resetToken = {
  103. token: token,
  104. expires: expires
  105. };
  106.  
  107. var mainsite = req.headers.host.split('.').slice(-2, -1);
  108. require('../lib/wstranslate-npm')(null, true).init('fr', function(err, wst) {
  109. console.log('before require');
  110. fs.readFile(__dirname + '/mail_wannaspeak.html', "utf-8", function(err, html) {
  111.  
  112. if (err) {
  113. throw err;
  114. }
  115. if (mainsite == 'wannaspeak') {
  116.  
  117. html = html.replace(/<!-- START/g, '');
  118. html = html.replace(/STOP -->/g, '');
  119. }
  120.  
  121. html = html.replace(/mainsiteurl/g, wst.get('mainsite.' + mainsite + '.url', mainsite + '.com'));
  122. html = html.replace(/mainsitelabel/g, wst.get('mainsite.' + mainsite + '.label', mainsite));
  123. html = html.replace(/mainsite/g, mainsite);
  124. html = html.replace('{{ login }}', req.body.login);
  125. html = html.replace('{{ password }}', req.body.pass);
  126. html = html.replace('{{ name }}', req.body.name);
  127.  
  128. host = req.get('host');
  129. console.log("HOOOOSSTSTTTTTTTT" + host);
  130. link = "http://" + req.get('host') + "/#token_" + token;
  131.  
  132. var mailOptions = {
  133. from: '"Support ' + wst.get('mainsite.' + mainsite + '.label', mainsite) + '" <support@' + wst.get('mainsite.' + mainsite + '.url', mainsite + '.com') + '>', // sender address
  134. to: req.body.email, // list of receivers
  135. subject: '[' + wst.get('mainsite.' + mainsite + '.label', mainsite) + '] - Votre nouveau compte ✔', // Subject line
  136. text: 'Welcome to ' + wst.get('mainsite.' + mainsite + '.label', mainsite), // plaintext body
  137. html: "Hello,<br> Cliquez pour verifier le mail.<br><a href=" + link + ">Cliquez ici pour verifier</a>"
  138. };
  139. console.log(mailOptions, 'MAAAAAILLLLOPPPTTTIONNNAFFTEEEERRR');
  140.  
  141. console.log('after mailoption', mailOptions);
  142. console.log('before send mail');
  143. mail.send(mailOptions);
  144.  
  145. });
  146. });
  147.  
  148. new wsapi('session-v1').v1cookie(req).cb(function(err, me) {
  149. if (me.no == 200) {
  150. var userConnected = {
  151. name: me.details.name,
  152. level: me.details.level,
  153. email: me.details.email,
  154. login: me.details.login,
  155. cid: me.details.cid
  156. }
  157. log.add(userConnected, 'log.user.add', logUser, "V2");
  158. tk.add(token, idAddUser, logUser, expires);
  159.  
  160. }
  161. }).v1account.me();
  162.  
  163. res.json(data);
  164. }
  165. }).v1account.add(req.body);
  166.  
  167. });
  168.  
  169.  
  170. app.get('/api/account/token_/:token', (req, res) => {
  171. const token = req.params.token;
  172.  
  173. tk.verifytoken(token, function(err, doc){
  174. console.log('e', err, );
  175. if(err) {
  176. res.status(doc).send(err);
  177. return;
  178. }else{
  179. res.send('200')
  180. }
  181. });
  182. });
  183.  
  184. app.post('/api/account/token_/:token', (req, res) => {
  185.  
  186. var token2 = req.params.token;
  187.  
  188. tk.verifytoken(token, function(err, doc){
  189. if(err) {
  190. console.log(err);
  191. res.status(doc);
  192. return;
  193. console.log(err);
  194. }
  195.  
  196. });
  197.  
  198. //verifytoken(token, function(err, token2))
  199.  
  200.  
  201. });
  202.  
  203. /*app.post('/api/account/changePassword//', (req, res, next) => {
  204. var data = {
  205. "datas": {
  206. password: req.params.password,
  207. id: req.params.id
  208. }
  209. };
  210. send.json(data)
  211. console.log("lllllllllllllll");
  212. const id = req.params.id;
  213. console.log(id,'IIIDDDDDDDDPASWOORDDCHANNGZE');
  214.  
  215. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  216.  
  217. console.log(data, 'DAATATATATATTATATATAT');
  218. var ret = data;
  219. console.log(ret, 'RREEEEEEEEEEEEEETTTTTTTTTTTTTTTttttt');
  220. res.json(ret.no == 200);
  221. }).v1account.changePassword(req.body.checkPass, id)
  222.  
  223. });*/
  224.  
  225. app.post('/api/user/edit', function(req, res, next) {
  226.  
  227. console.log(req.body);
  228.  
  229. var logUser = {
  230. name: req.body.name,
  231. level: req.body.level,
  232. email: req.body.email,
  233. login: req.body.login,
  234. type: "user"
  235. };
  236.  
  237. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  238. //console.log('details', err, data);
  239. if (err) {
  240. res.json({});
  241. } else {
  242.  
  243. new wsapi('session-v1').v1cookie(req).cb(function(err, me) {
  244. if (me.no == 200) {
  245.  
  246. var userConnected = {
  247. name: me.details.name,
  248. level: me.details.level,
  249. email: me.details.email,
  250. login: me.details.login,
  251. cid: me.details.id
  252. }
  253.  
  254. log.add(userConnected, 'log.user.edit', logUser, "V2");
  255. }
  256. }).v1account.me();
  257.  
  258. res.json(data);
  259. }
  260.  
  261. }).v1account.edit(req.body);
  262.  
  263. });
  264.  
  265. app.post('/api/user/toggle', function(req, res, next) {
  266. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  267. //console.log('details', err, data);
  268. if (err) {
  269. res.json({});
  270. } else {
  271. res.json(data);
  272. }
  273. }).v1account.offline(req.body);
  274. });
  275.  
  276. app.post('/api/user/delete', function(req, res, next) {
  277.  
  278. var logUser = {
  279. id: req.body.user.id,
  280. name: req.body.user.name,
  281. level: req.body.user.level,
  282. email: req.body.user.email,
  283. login: req.body.user.login,
  284. type: "user"
  285. };
  286. console.log(logUser, );
  287.  
  288. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  289. if (err) {
  290. res.json({});
  291. } else {
  292.  
  293. new wsapi('session-v1').v1cookie(req).cb(function(err, me) {
  294. if (me.no == 200) {
  295.  
  296. var userConnected = {
  297. name: me.details.name,
  298. level: me.details.level,
  299. email: me.details.email,
  300. login: me.details.login,
  301. cid: me.details.cid
  302. };
  303.  
  304. log.add(userConnected, 'log.user.delete', logUser, "V2");
  305. }
  306. }).v1account.me();
  307.  
  308. res.json(data);
  309. }
  310. }).v1account.delete(req.body);
  311.  
  312. });
  313.  
  314. app.get('/api/account/details', function(req, res, next) {
  315. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  316. //console.log('details', err, data);
  317. if (err) {
  318. res.json({});
  319. } else {
  320. res.json(data.details);
  321. }
  322. }).v1account.details();
  323.  
  324. });
  325.  
  326. app.get('/api/account/history/:id', function(req, res, next) {
  327.  
  328. var id = req.params.id;
  329.  
  330. if (id == 'self') {
  331. id = req.session.accountId;
  332. }
  333.  
  334. log.get(id, function(err, data) {
  335. if (err) {
  336. res.json(err)
  337. } else {
  338. res.json(data);
  339. }
  340. });
  341. });
  342.  
  343. app.get('/api/account/sid', function(req, res, next) {
  344. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  345. //console.log('Sid', err, data);
  346. if (err) {
  347. res.json({});
  348. } else {
  349. res.json(data.sid);
  350. }
  351. }).v1account.sid();
  352.  
  353. });
  354.  
  355. app.get('/api/account/users/:account', function(req, res, next) {
  356.  
  357. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  358. //console.log('Sid', err, data);
  359. if (err) {
  360. res.json({});
  361. } else {
  362. res.json(data.users);
  363. }
  364. }).v1account.users(req.params.account !== 'me' ? req.params.account : undefined);
  365.  
  366. });
  367.  
  368. app.get('/api/account/users', function(req, res, next) {
  369.  
  370. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  371. //console.log('Sid', err, data);
  372. if (err) {
  373. res.json({});
  374. } else {
  375. res.json(data.users);
  376. }
  377. }).v1account.users();
  378.  
  379. });
  380.  
  381. app.get('/api/account', function(req, res, next) {
  382.  
  383. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  384. var ret = data;
  385. if (ret.no == 200) {
  386. req.session.vr = ret.details.aid;
  387. req.session.mainaccountId = ret.details.cid;
  388. req.session.accountId = ret.details.wid;
  389. ret.details.vrid = crypto.createHash('md5').update(req.session.vrid).digest("hex") + req.session.vrid;
  390. res.json(ret.details);
  391. } else {
  392. res.json(false);
  393. }
  394. }).v1account.me();
  395. });
  396.  
  397. app.get('/api/account/me', function(req, res, next) {
  398.  
  399. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  400. var ret = data;
  401. if (ret.no == 200) {
  402. req.session.vr = ret.details.aid;
  403. req.session.mainaccountId = ret.details.cid;
  404. req.session.accountId = ret.details.wid;
  405. req.session.user = ret.details;
  406. ret.details.vrid = crypto.createHash('md5').update(req.session.vrid).digest("hex") + req.session.vrid;
  407. otnDid.isSource(req.session.accountId, function(err, data) {
  408. ret.details['diddynstatssource'] = data ? 1 : 0;
  409. res.json(ret.details);
  410. });
  411. } else {
  412. res.json(false);
  413. }
  414. }).v1account.me();
  415. });
  416.  
  417. app.get('/api/account/:id', function(req, res, next) {
  418.  
  419. var id = req.params.id;
  420.  
  421. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  422. var ret = data;
  423. if (ret.no == 200) {
  424. req.session.vr = ret.details.aid;
  425. req.session.mainaccountId = ret.details.cid;
  426. req.session.accountId = ret.details.wid;
  427. ret.details.vrid = crypto.createHash('md5').update(req.session.vrid).digest("hex") + req.session.vrid;
  428. res.json(ret.details);
  429. } else {
  430. res.json(false);
  431. }
  432. }).v1account.id(id);
  433. });
  434.  
  435. app.get('/api/account/info', function(req, res, next) {
  436. //console.log('Session', req.session, ('session' in req), req.session.accountId !== null && req.session.accountId !== undefined, ('session' in req) && req.session.accountId !== null);
  437. if (!is_auth(req)) {
  438. res.json(false);
  439. } else {
  440. res.json(true);
  441. }
  442. });
  443.  
  444. app.post('/api/account/info', function(req, res, next) {
  445.  
  446. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  447. var ret = data;
  448. if (ret.no == 200) {
  449. req.session.vr = ret.id;
  450. req.session.accountId = ret.cid;
  451. res.json(true);
  452. } else {
  453. res.json(false);
  454. }
  455. }).v1account.auth(req.body.user, req.body.password);
  456.  
  457. });
  458.  
  459. app.post('/api/account/forget/:email', function(req, res, next) {
  460. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  461. var ret = data;
  462. res.json(ret.no == 200);
  463. }).v1account.forget(req.params.email);
  464.  
  465. });
  466.  
  467. app.delete('/api/account/info', function(req, res, next) {
  468.  
  469. if (is_auth(req)) {
  470. console.log('Pre Session', req.session);
  471. var a = ['accountId', 'vrid']
  472. for (var i in a) {
  473. //console.log(a[i]);
  474. delete req.session[a[i]];
  475. }
  476. console.log('Final Session', req.session);
  477. }
  478. res.json(true);
  479. });
  480.  
  481. app.post('/api/account/change/:id', function(req, res, next) {
  482. new wsapi('session-v1').v1cookie(req).cb(function(err, data) {
  483. if (err) {
  484. res.json(false);
  485. } else {
  486. res.json(true)
  487. }
  488. }).v1account.change(req.params.id);
  489.  
  490.  
  491. });
  492. app.public_allow.push('/v1import');
  493. app.get('/v1import', function(req, res, next) {
  494. require('../tools/import')();
  495.  
  496.  
  497. res.send('OK');
  498. });
  499. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement