Improved MeshCtrl with more support for --group
This commit is contained in:
parent
a7be98be04
commit
a80ffba40d
30
meshctrl.js
30
meshctrl.js
|
@ -59,14 +59,14 @@ if (args['_'].length == 0) {
|
|||
break;
|
||||
}
|
||||
case 'addusertodevicegroup': {
|
||||
if (args.userid == null) { console.log("Add user to group missing useid, use --userid [userid]"); }
|
||||
else if (args.id == null) { console.log("Add user to group missing group id, use --id [groupid]"); }
|
||||
if ((args.id == null) && (args.group == null)) { console.log("Device group identifier missing, use --id [groupid] or --group [groupname]"); }
|
||||
else if (args.userid == null) { console.log("Add user to group missing useid, use --userid [userid]"); }
|
||||
else { ok = true; }
|
||||
break;
|
||||
}
|
||||
case 'removeuserfromdevicegroup': {
|
||||
if (args.userid == null) { console.log("Remove user from group missing useid, use --userid [userid]"); }
|
||||
else if (args.id == null) { console.log("Remove user from group missing group id, use --id [groupid]"); }
|
||||
if ((args.id == null) && (args.group == null)) { console.log("Device group identifier missing, use --id [groupid] or --group [groupname]"); }
|
||||
else if (args.userid == null) { console.log("Remove user from group missing useid, use --userid [userid]"); }
|
||||
else { ok = true; }
|
||||
break;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ if (args['_'].length == 0) {
|
|||
break;
|
||||
}
|
||||
case 'removedevicegroup': {
|
||||
if (args.id == null) { console.log("Message group identifier, use --id [identifier]"); }
|
||||
if ((args.id == null) && (args.group == null)) { console.log("Device group identifier missing, use --id [groupid] or --group [groupname]"); }
|
||||
else { ok = true; }
|
||||
break;
|
||||
}
|
||||
|
@ -257,15 +257,17 @@ if (args['_'].length == 0) {
|
|||
console.log("Remove a device group, Example usages:\r\n");
|
||||
console.log(" MeshCtrl RemoveDeviceGroup --id groupid");
|
||||
console.log("\r\nRequired arguments:\r\n");
|
||||
console.log(" --id [groupid] - The group identifier.");
|
||||
console.log(" --id [groupid] - Device group identifier (or --group).");
|
||||
console.log(" --group [groupname] - Device group name (or --id).");
|
||||
break;
|
||||
}
|
||||
case 'addusertodevicegroup': {
|
||||
console.log("Add a user to a device group, Example usages:\r\n");
|
||||
console.log(" MeshCtrl AddUserToDeviceGroup --id groupid --userid userid --fullrights");
|
||||
console.log(" MeshCtrl AddUserToDeviceGroup --id groupid --userid userid --editgroup --manageusers");
|
||||
console.log(" MeshCtrl AddUserToDeviceGroup --group groupname --userid userid --editgroup --manageusers");
|
||||
console.log("\r\nRequired arguments:\r\n");
|
||||
console.log(" --id [groupid] - The group identifier.");
|
||||
console.log(" --id [groupid] - Device group identifier (or --group).");
|
||||
console.log(" --group [groupname] - Device group name (or --id).");
|
||||
console.log(" --userid [userid] - The user identifier.");
|
||||
console.log("\r\nOptional arguments:\r\n");
|
||||
console.log(" --fullrights - Allow full rights over this device group.");
|
||||
|
@ -296,7 +298,8 @@ if (args['_'].length == 0) {
|
|||
console.log("Remove a user from a device group, Example usages:\r\n");
|
||||
console.log(" MeshCtrl RemoveuserFromDeviceGroup --id groupid --userid userid");
|
||||
console.log("\r\nRequired arguments:\r\n");
|
||||
console.log(" --id [groupid] - The group identifier.");
|
||||
console.log(" --id [groupid] - Device group identifier (or --group).");
|
||||
console.log(" --group [groupname] - Device group name (or --id).");
|
||||
console.log(" --userid [userid] - The user identifier.");
|
||||
break;
|
||||
}
|
||||
|
@ -572,7 +575,8 @@ function serverConnect() {
|
|||
break;
|
||||
}
|
||||
case 'removedevicegroup': {
|
||||
var op = { action: 'deletemesh', meshid: args.id, responseid: 'meshctrl' };
|
||||
var op = { action: 'deletemesh', responseid: 'meshctrl' };
|
||||
if (args.id) { op.meshid = args.id; } else if (args.group) { op.meshname = args.group; }
|
||||
ws.send(JSON.stringify(op));
|
||||
break;
|
||||
}
|
||||
|
@ -595,12 +599,14 @@ function serverConnect() {
|
|||
if (args.limitedevents) { meshrights |= 8192; }
|
||||
if (args.chatnotify) { meshrights |= 16384; }
|
||||
if (args.uninstall) { meshrights |= 32768; }
|
||||
var op = { action: 'addmeshuser', meshid: args.id, usernames: [args.userid], meshadmin: meshrights, responseid: 'meshctrl' };
|
||||
var op = { action: 'addmeshuser', usernames: [args.userid], meshadmin: meshrights, responseid: 'meshctrl' };
|
||||
if (args.id) { op.meshid = args.id; } else if (args.group) { op.meshname = args.group; }
|
||||
ws.send(JSON.stringify(op));
|
||||
break;
|
||||
}
|
||||
case 'removeuserfromdevicegroup': {
|
||||
var op = { action: 'removemeshuser', meshid: args.id, userid: args.userid, responseid: 'meshctrl' };
|
||||
var op = { action: 'removemeshuser', userid: args.userid, responseid: 'meshctrl' };
|
||||
if (args.id) { op.meshid = args.id; } else if (args.group) { op.meshname = args.group; }
|
||||
ws.send(JSON.stringify(op));
|
||||
break;
|
||||
}
|
||||
|
|
35
meshuser.js
35
meshuser.js
|
@ -2241,6 +2241,17 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
case 'deletemesh':
|
||||
{
|
||||
var err = null;
|
||||
|
||||
// Resolve the device group name if needed
|
||||
if ((typeof command.meshname == 'string') && (command.meshid == null)) {
|
||||
for (var i in parent.meshes) {
|
||||
var m = parent.meshes[i];
|
||||
if ((m.mtype == 2) && (m.name == command.meshname) && parent.IsMeshViewable(user, m)) {
|
||||
if (command.meshid == null) { command.meshid = m._id; } else { err = 'Duplicate device groups found'; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
// Delete a mesh and all computers within it
|
||||
if (common.validateString(command.meshid, 1, 1024) == false) { err = 'Invalid group identifier'; } // Check the meshid
|
||||
|
@ -2370,8 +2381,19 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
}
|
||||
case 'addmeshuser':
|
||||
{
|
||||
if (typeof command.userid == 'string') { command.userids = [ command.userid ]; }
|
||||
var err = null;
|
||||
if (typeof command.userid == 'string') { command.userids = [command.userid]; }
|
||||
|
||||
// Resolve the device group name if needed
|
||||
if ((typeof command.meshname == 'string') && (command.meshid == null)) {
|
||||
for (var i in parent.meshes) {
|
||||
var m = parent.meshes[i];
|
||||
if ((m.mtype == 2) && (m.name == command.meshname) && parent.IsMeshViewable(user, m)) {
|
||||
if (command.meshid == null) { command.meshid = m._id; } else { err = 'Duplicate device groups found'; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
if (common.validateString(command.meshid, 1, 1024) == false) { err = 'Invalid groupid'; } // Check the meshid
|
||||
else if (common.validateInt(command.meshadmin) == false) { err = 'Invalid group rights'; } // Mesh rights must be an integer
|
||||
|
@ -2568,6 +2590,17 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
case 'removemeshuser':
|
||||
{
|
||||
var err = null;
|
||||
|
||||
// Resolve the device group name if needed
|
||||
if ((typeof command.meshname == 'string') && (command.meshid == null)) {
|
||||
for (var i in parent.meshes) {
|
||||
var m = parent.meshes[i];
|
||||
if ((m.mtype == 2) && (m.name == command.meshname) && parent.IsMeshViewable(user, m)) {
|
||||
if (command.meshid == null) { command.meshid = m._id; } else { err = 'Duplicate device groups found'; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
if (common.validateString(command.userid, 1, 1024) == false) { err = "Invalid userid"; } // Check userid
|
||||
if (common.validateString(command.meshid, 1, 1024) == false) { err = "Invalid groupid"; } // Check meshid
|
||||
|
|
Loading…
Reference in New Issue