From d9080a59ca8c7974611a11f20dce2bb0fcf43961 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Mon, 27 Jul 2026 14:44:26 -0400 Subject: [PATCH] geenforce: move settings into the Settings rail The client IP allowlist config was a tab inside the GE-Enforce section; move it to the Settings rail via get_settings_cards (matches printedparts / zabbix / dell). Route relocated from /geenforce/settings to /settings/geenforce; the in-section Settings tab is removed. Card: Settings > GE-Enforce. --- plugins/geenforce/frontend/routes.js | 14 ++++++++------ .../geenforce/frontend/views/GeEnforceLayout.vue | 1 - plugins/geenforce/plugin.py | 13 +++++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/plugins/geenforce/frontend/routes.js b/plugins/geenforce/frontend/routes.js index 52c575e..2c18f0d 100644 --- a/plugins/geenforce/frontend/routes.js +++ b/plugins/geenforce/frontend/routes.js @@ -24,13 +24,15 @@ export default [ name: 'geenforce-reports', component: () => import('./views/EnforcementReports.vue'), meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' } - }, - { - path: 'settings', - name: 'geenforce-settings', - component: () => import('./views/GeEnforceSettings.vue'), - meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' } } ] + }, + { + // Config lives in the Settings rail (contributed via get_settings_cards), + // not inside the GE-Enforce section tabs. + path: 'settings/geenforce', + name: 'settings-geenforce', + component: () => import('./views/GeEnforceSettings.vue'), + meta: { requiresAuth: true, requiresAdmin: true, plugin: 'geenforce' } } ] diff --git a/plugins/geenforce/frontend/views/GeEnforceLayout.vue b/plugins/geenforce/frontend/views/GeEnforceLayout.vue index c06db07..b5c74af 100644 --- a/plugins/geenforce/frontend/views/GeEnforceLayout.vue +++ b/plugins/geenforce/frontend/views/GeEnforceLayout.vue @@ -7,7 +7,6 @@ diff --git a/plugins/geenforce/plugin.py b/plugins/geenforce/plugin.py index eca23c9..030672c 100644 --- a/plugins/geenforce/plugin.py +++ b/plugins/geenforce/plugin.py @@ -91,6 +91,19 @@ class GeEnforcePlugin(BasePlugin): }, ] + def get_settings_cards(self) -> List[Dict]: + """Admin config for GE-Enforce lives in the Settings rail.""" + return [ + { + 'group': 'GE-Enforce', + 'to': '/settings/geenforce', + 'icon': 'shield', + 'title': 'GE-Enforce Settings', + 'description': 'Client IP allowlist for token-less fleet access', + 'position': 46, + }, + ] + def init_app(self, app: Flask, db_instance) -> None: logger.info(f"GE-Enforce plugin initialized (v{self.meta.version})")