Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mysql = require('mysql2');
- var fs = require('fs');
- var errors = [];
- var List = [];
- var INSERT = [];
- // create the connection to database
- const connection = mysql.createConnection({
- host: '127.0.0.1',
- user: 'oc_admin',
- database: 'cloudDB',
- password: 'XXXX'
- });
- function query(list, i, cb) {
- if (!list[i]) return cb();
- connection.query(
- 'SELECT * FROM `oc_ldap_user_mapping` where directory_uuid="' + list[i] + '"',
- function(err, results, fields) {
- if (results.length == 0) {
- errors.push(list[i]);
- query(list, i + 1, cb);
- return;
- };
- List.push(results);
- query(list, i + 1, cb);
- }
- );
- };
- function check(list, i, cb) {
- if (!list[i]) return cb();
- var cn = list[i][0].ldap_dn;
- var name = list[i][0].owncloud_name;
- var nomprenom = (cn.split('cn=')[1].split(',')[0].split('\\28')[0]);
- nomprenom = nomprenom.replace(/\w\S*/g, function(txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
- var mail = (cn.split('cn=')[1].split(',')[0].split('\\28')[1].split('\\29')[0]);
- connection.query(
- 'SELECT * FROM `oc_users` where uid="' + mail + '" or uid="' + name + '"',
- function(err, results, fields) {
- if (results.length == 0) {
- // Cet utilisateur n'a pas été crée dans la base
- INSERT.push("INSERT INTO oc_users (uid,displayname,password) VALUES ('" + mail + "','" + nomprenom + "','-1')");
- INSERT.push("UPDATE oc_ldap_user_mapping SET owncloud_name='" + mail + "' WHERE owncloud_name='" + name + "'");
- };
- check(list, i + 1, cb);
- }
- );
- };
- function do_insert(insert, i, cb) {
- if (!insert[i]) return cb();
- connection.query(insert[i], function(err, results, fields) {
- console.log('- updated.');
- do_insert(insert, i + 1, cb);
- });
- };
- fs.readdir('/data/', function(e, r) {
- var files = [];
- for (var i = 0; i < r.length; i++) {
- 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]);
- };
- query(files, 0, function() {
- check(List, 0, function() {
- do_insert(INSERT, 0, function() {
- console.log('ok');
- connection.end();
- });
- });
- });
- });
Add Comment
Please, Sign In to add comment