Guest User

Untitled

a guest
Mar 4th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. var mysql = require('mysql2');
  2. var fs = require('fs');
  3.  
  4. var errors = [];
  5. var List = [];
  6. var INSERT = [];
  7.  
  8. // create the connection to database
  9. const connection = mysql.createConnection({
  10. host: '127.0.0.1',
  11. user: 'oc_admin',
  12. database: 'cloudDB',
  13. password: 'XXXX'
  14. });
  15.  
  16. function query(list, i, cb) {
  17. if (!list[i]) return cb();
  18. connection.query(
  19. 'SELECT * FROM `oc_ldap_user_mapping` where directory_uuid="' + list[i] + '"',
  20. function(err, results, fields) {
  21. if (results.length == 0) {
  22. errors.push(list[i]);
  23. query(list, i + 1, cb);
  24. return;
  25. };
  26. List.push(results);
  27. query(list, i + 1, cb);
  28. }
  29. );
  30. };
  31.  
  32. function check(list, i, cb) {
  33. if (!list[i]) return cb();
  34. var cn = list[i][0].ldap_dn;
  35. var name = list[i][0].owncloud_name;
  36. var nomprenom = (cn.split('cn=')[1].split(',')[0].split('\\28')[0]);
  37. nomprenom = nomprenom.replace(/\w\S*/g, function(txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
  38. var mail = (cn.split('cn=')[1].split(',')[0].split('\\28')[1].split('\\29')[0]);
  39. connection.query(
  40. 'SELECT * FROM `oc_users` where uid="' + mail + '" or uid="' + name + '"',
  41. function(err, results, fields) {
  42. if (results.length == 0) {
  43. // Cet utilisateur n'a pas été crée dans la base
  44. INSERT.push("INSERT INTO oc_users (uid,displayname,password) VALUES ('" + mail + "','" + nomprenom + "','-1')");
  45. INSERT.push("UPDATE oc_ldap_user_mapping SET owncloud_name='" + mail + "' WHERE owncloud_name='" + name + "'");
  46. };
  47. check(list, i + 1, cb);
  48. }
  49. );
  50. };
  51.  
  52. function do_insert(insert, i, cb) {
  53. if (!insert[i]) return cb();
  54. connection.query(insert[i], function(err, results, fields) {
  55. console.log('- updated.');
  56. do_insert(insert, i + 1, cb);
  57. });
  58. };
  59.  
  60. fs.readdir('/data/', function(e, r) {
  61. var files = [];
  62. for (var i = 0; i < r.length; i++) {
  63. if ((r[i].indexOf('.ocdata') == -1) && (r[i].indexOf('.htaccess') == -1) && (r[i].indexOf('owncloud.log') == -1) && (r[i].indexOf('owncloud') == -1)) files.push(r[i]);
  64. };
  65. query(files, 0, function() {
  66. check(List, 0, function() {
  67. do_insert(INSERT, 0, function() {
  68. console.log('ok');
  69. connection.end();
  70. });
  71. });
  72. });
  73. });
Add Comment
Please, Sign In to add comment