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})")