81 lines
2.4 KiB
JavaScript
81 lines
2.4 KiB
JavaScript
/*
|
|
* This file is part of the authRXBN single sign-on package.
|
|
*
|
|
* (c) Ruben Meyer <contact@rxbn.de>
|
|
*/
|
|
|
|
module.exports = {
|
|
'command': 'user <action> <nick> [pass] [mail] [group] [data...]',
|
|
'description': 'add, get, update or remove an user',
|
|
'actionDependencies': ['vorpal'],
|
|
'action': (actionDependencies) => {
|
|
let vorpal = actionDependencies.vorpal;
|
|
return (args, cb) => {
|
|
if(typeof args.action !== 'undefined') {
|
|
let action = args.action.toLowerCase();
|
|
let profile = {
|
|
user: args.nick,
|
|
pass: (args.pass) ? global['app'].modules.auth.generateHash(args.pass) : "-",
|
|
mail: null,
|
|
group: 0
|
|
};
|
|
if(!args.mail) profile.mail = profile.user;
|
|
if(args.mail) profile.mail = args.mail;
|
|
if(args.group) profile.group = args.group;
|
|
|
|
if(action === 'add') {
|
|
|
|
global['app'].modules.database.getUser([profile.user, profile.mail], (err, rep) => {
|
|
if(err) vorpal.log("ERR: While finding user");
|
|
else {
|
|
if (!rep) {
|
|
global['app'].modules.database.addUser(profile.user, profile.mail, profile.pass, profile.group, (errAdd, repAdd) => {
|
|
if(errAdd) vorpal.log("ERR: While adding user");
|
|
else vorpal.log("Reply: "+rep);
|
|
});
|
|
} else {
|
|
vorpal.log("User exists: ");
|
|
vorpal.log(rep);
|
|
}
|
|
}
|
|
});
|
|
} else if(action === 'get') {
|
|
global['app'].modules.database.getUser([profile.user, profile.mail], (err, rep) => {
|
|
if(rep) {
|
|
vorpal.log("User exists: ");
|
|
vorpal.log(rep);
|
|
} else {
|
|
vorpal.log("User "+profile.user+" / "+profile.mail+" doesn't exist.");
|
|
}
|
|
});
|
|
} else if(action === 'update') {
|
|
if(args.data.length < 2) vorpal.log("No data supplied.");
|
|
else {
|
|
let field = args.data[0];
|
|
let param = args.data[1];
|
|
vorpal.log("Field: "+field+"; Param: "+param);
|
|
}
|
|
} else if(action === 'remove' || action === 'delete') {
|
|
global['app'].modules.database.getUser([profile.user, profile.mail], (err, rep) => {
|
|
if(rep) {
|
|
vorpal.log("User exists. Deleting him.");
|
|
vorpal.log(rep);
|
|
global['app'].modules.database.delUser(rep.email, (errDel, repDel) => {
|
|
if(repDel) vorpal.log("Deleted user.");
|
|
else vorpal.log("ERR: While deleting user.");
|
|
});
|
|
}
|
|
});
|
|
} else if(action === 'genpass') {
|
|
vorpal.log(profile.pass);
|
|
}
|
|
|
|
cb();
|
|
} else {
|
|
vorpal.exec('user --help');
|
|
cb();
|
|
}
|
|
}
|
|
}
|
|
};
|