mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-04 14:50:47 +01:00
feat(config): add acpPluginInstallDisabled option (#13189)
This commit is contained in:
@@ -88,6 +88,7 @@ async function getNodeInfo() {
|
||||
isPrimary: nconf.get('isPrimary'),
|
||||
runJobs: nconf.get('runJobs'),
|
||||
jobsDisabled: nconf.get('jobsDisabled'),
|
||||
acpPluginInstallDisabled: nconf.get('acpPluginInstallDisabled')
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ function loadConfig(configFile) {
|
||||
isCluster: false,
|
||||
isPrimary: true,
|
||||
jobsDisabled: false,
|
||||
acpPluginInstallDisabled: false,
|
||||
fontawesome: {
|
||||
pro: false,
|
||||
styles: '*',
|
||||
@@ -65,7 +66,7 @@ function loadConfig(configFile) {
|
||||
});
|
||||
|
||||
// Explicitly cast as Bool, loader.js passes in isCluster as string 'true'/'false'
|
||||
const castAsBool = ['isCluster', 'isPrimary', 'jobsDisabled'];
|
||||
const castAsBool = ['isCluster', 'isPrimary', 'jobsDisabled', 'acpPluginInstallDisabled'];
|
||||
nconf.stores.env.readOnly = false;
|
||||
castAsBool.forEach((prop) => {
|
||||
const value = nconf.get(prop);
|
||||
|
||||
@@ -22,6 +22,10 @@ Plugins.toggleActive = async function (socket, plugin_id) {
|
||||
};
|
||||
|
||||
Plugins.toggleInstall = async function (socket, data) {
|
||||
const isInstalled = await plugins.isInstalled(data.id);
|
||||
if (nconf.get('acpPluginInstallDisabled') && !isInstalled) {
|
||||
throw new Error('[[error:plugin-installation-via-acp-disabled]]');
|
||||
}
|
||||
postsCache.reset();
|
||||
await plugins.checkWhitelist(data.id, data.version);
|
||||
const pluginData = await plugins.toggleInstall(data.id, data.version);
|
||||
|
||||
Reference in New Issue
Block a user