From ed84555ddfbdb1cd1cba849ab2abac460774ff25 Mon Sep 17 00:00:00 2001 From: master3395 Date: Tue, 20 Jan 2026 00:53:18 +0100 Subject: [PATCH] Fix installed plugins view to show plugins installed from store - Add logic to check installed plugins that don't have source directories - Fixes issue where PM2 Manager (installed from store) wasn't showing in installed list - Now shows all installed plugins regardless of whether they have source in /home/cyberpanel/plugins/ - Prevents duplicate plugin entries by tracking processed plugins --- pluginHolder/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pluginHolder/views.py b/pluginHolder/views.py index 185a46743..e0662fa0d 100644 --- a/pluginHolder/views.py +++ b/pluginHolder/views.py @@ -69,9 +69,12 @@ def help_page(request): def installed(request): mailUtilities.checkHome() pluginPath = '/home/cyberpanel/plugins' + installedPath = '/usr/local/CyberCP' pluginList = [] errorPlugins = [] + processed_plugins = set() # Track which plugins we've already processed + # First, process plugins from source directory if os.path.exists(pluginPath): for plugin in os.listdir(pluginPath): # Skip files (like .zip files) - only process directories @@ -81,7 +84,7 @@ def installed(request): data = {} # Try installed location first, then fallback to source location - completePath = '/usr/local/CyberCP/' + plugin + '/meta.xml' + completePath = installedPath + '/' + plugin + '/meta.xml' sourcePath = os.path.join(pluginDir, 'meta.xml') # Determine which meta.xml to use @@ -98,6 +101,8 @@ def installed(request): # No meta.xml found in either location - skip silently continue + processed_plugins.add(plugin) + pluginMetaData = ElementTree.parse(metaXmlPath) root = pluginMetaData.getroot()