mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-03-09 15:40:18 +00:00
Tweaks to plugin install/removal so server does not require a restart. Initial support for downgrading plugins.
This commit is contained in:
parent
800504f5ed
commit
78bbf03b00
5 changed files with 165 additions and 19 deletions
20
meshuser.js
20
meshuser.js
|
@ -3147,11 +3147,12 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
}
|
||||
case 'installplugin': {
|
||||
if ((user.siteadmin & 0xFFFFFFFF) == 0 || parent.parent.pluginHandler == null) break; // must be full admin, plugins enabled
|
||||
parent.parent.pluginHandler.installPlugin(command.id, function(){
|
||||
parent.parent.updateMeshCore();
|
||||
parent.parent.pluginHandler.installPlugin(command.id, command.version_only, function(){
|
||||
parent.db.getPlugins(function(err, docs) {
|
||||
try { ws.send(JSON.stringify({ action: 'updatePluginList', list: docs, result: err })); } catch (ex) { }
|
||||
});
|
||||
var targets = ['*', 'server-users'];
|
||||
parent.parent.DispatchEvent(targets, obj, { action: 'pluginStateChange' });
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
@ -3160,7 +3161,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
parent.parent.pluginHandler.disablePlugin(command.id, function(){
|
||||
parent.db.getPlugins(function(err, docs) {
|
||||
try { ws.send(JSON.stringify({ action: 'updatePluginList', list: docs, result: err })); } catch (ex) { }
|
||||
// @TODO delete plugin object from handler
|
||||
var targets = ['*', 'server-users'];
|
||||
parent.parent.DispatchEvent(targets, obj, { action: 'pluginStateChange' });
|
||||
});
|
||||
});
|
||||
break;
|
||||
|
@ -3174,6 +3176,18 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
|
|||
});
|
||||
break;
|
||||
}
|
||||
case 'getpluginversions': {
|
||||
if ((user.siteadmin & 0xFFFFFFFF) == 0 || parent.parent.pluginHandler == null) break; // must be full admin, plugins enabled
|
||||
parent.parent.pluginHandler.getPluginVersions(command.id)
|
||||
.then(function (versionInfo) {
|
||||
try { ws.send(JSON.stringify({ action: 'downgradePluginVersions', info: versionInfo, error: null })); } catch (ex) { }
|
||||
})
|
||||
.catch(function (e) {
|
||||
try { ws.send(JSON.stringify({ action: 'pluginError', msg: e })); } catch (ex) { }
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
case 'plugin': {
|
||||
if (parent.parent.pluginHandler == null) break; // If the plugin's are not supported, reject this command.
|
||||
command.userid = user._id;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue