diff --git a/README.md b/README.md index 365a424..c537e83 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,24 @@ Comprehensive maintenance and security add-on for REDAXO CMS. 2. **Security Setup**: Backend → Upkeep → IPS → Enable Protection 3. **Security Review**: Backend → Upkeep → Security Advisor → Run Scan 4. **Mail Security**: Automatically active after installation +5. **Configure Start Page**: Backend → Upkeep → Admin Settings → Default Start Page + +## Configuration + +### Default Start Page +**Location**: `Backend → Upkeep → Admin Settings` + +Configure which page should be displayed when opening the Upkeep addon: +- **Dashboard** (default): Overview with system status and quick actions +- **Admin Dashboard**: Direct access to maintenance toggles and admin functions +- **Maintenance - Frontend**: Quick access to frontend maintenance settings +- **Maintenance - Backend**: Quick access to backend maintenance settings +- **IPS**: Direct access to Intrusion Prevention System +- **Security Advisor**: Jump directly to security analysis +- **Mail Security**: Direct access to email protection settings +- **Reporting**: Start with system reporting overview + +This is particularly useful when you need quick access to specific functions, such as enabling maintenance mode from the Admin Dashboard. ## Main Components diff --git a/boot.php b/boot.php index 6a0a27b..5bac02e 100644 --- a/boot.php +++ b/boot.php @@ -59,6 +59,9 @@ if (rex_addon::get('cronjob')->isAvailable() && !rex::isSafeMode()) { rex_cronjob_manager::registerType('rex_upkeep_ips_cleanup_cronjob'); } + + // Startseiten-Redirect + Upkeep::redirectToStartPage(); } // URL-Redirects (nur wenn kein Wartungsmodus aktiv war) Upkeep::checkDomainMapping(); }, rex_extension::EARLY); diff --git a/lang/de_de.lang b/lang/de_de.lang index 7811aa5..14335e6 100644 --- a/lang/de_de.lang +++ b/lang/de_de.lang @@ -1381,4 +1381,15 @@ upkeep_admin_hides_dashboard_tiles = Blendet Dashboard-Kacheln aus upkeep_admin_functionality_remains_active = Funktionalität bleibt im Hintergrund aktiv upkeep_admin_reduces_ui_overload = Reduziert UI-Überladung upkeep_email_protection_deactivated = E-Mail Schutz deaktiviert -upkeep_ips_protection_deactivated = IPS deaktiviert \ No newline at end of file +upkeep_ips_protection_deactivated = IPS deaktiviert +# Startseite +upkeep_default_start_page = Standard-Startseite +upkeep_default_start_page_tooltip = Definieren Sie, welche Seite beim Öffnen des Upkeep-AddOns angezeigt wird +upkeep_start_page_dashboard = Dashboard (Standard) +upkeep_start_page_dashboard_admin = Admin Dashboard +upkeep_start_page_maintenance_frontend = Wartung - Frontend +upkeep_start_page_maintenance_backend = Wartung - Backend +upkeep_start_page_ips = IPS - Übersicht +upkeep_start_page_security_advisor = Security Advisor +upkeep_start_page_mail_security = Mail Security +upkeep_start_page_reporting = Reporting diff --git a/lang/en_gb.lang b/lang/en_gb.lang index fb59f42..b6845aa 100644 --- a/lang/en_gb.lang +++ b/lang/en_gb.lang @@ -1366,4 +1366,15 @@ upkeep_admin_hides_dashboard_tiles = Hides dashboard tiles upkeep_admin_functionality_remains_active = Functionality remains active in background upkeep_admin_reduces_ui_overload = Reduces UI overload upkeep_email_protection_deactivated = Email protection deactivated -upkeep_ips_protection_deactivated = IPS deactivated \ No newline at end of file +upkeep_ips_protection_deactivated = IPS deactivated +# Start page +upkeep_default_start_page = Default start page +upkeep_default_start_page_tooltip = Define which page is displayed when opening the Upkeep addon +upkeep_start_page_dashboard = Dashboard (Default) +upkeep_start_page_dashboard_admin = Admin Dashboard +upkeep_start_page_maintenance_frontend = Maintenance - Frontend +upkeep_start_page_maintenance_backend = Maintenance - Backend +upkeep_start_page_ips = IPS - Overview +upkeep_start_page_security_advisor = Security Advisor +upkeep_start_page_mail_security = Mail Security +upkeep_start_page_reporting = Reporting diff --git a/lib/Upkeep.php b/lib/Upkeep.php index 2d5d63e..f112a9a 100644 --- a/lib/Upkeep.php +++ b/lib/Upkeep.php @@ -519,4 +519,36 @@ private static function getConfig(string $key, mixed $default = null): mixed { return self::getAddon()->getConfig($key, $default); } + + /** + * Leitet zur konfigurierten Startseite weiter + */ + public static function redirectToStartPage(): void + { + // Nur wenn wir auf der Upkeep-Hauptseite sind (ohne Subpage) + $currentPage = rex_be_controller::getCurrentPage(); + + // Prüfen ob wir auf der Upkeep-Seite sind + if ($currentPage !== 'upkeep') { + return; + } + + // Subpage prüfen + $subpage = rex_request::get('subpage', 'string', ''); + if ($subpage !== '') { + return; // Bereits auf einer Subpage + } + + // Konfigurierte Startseite laden + $defaultStartPage = self::getConfig('default_start_page', 'dashboard'); + + // Wenn die Standard-Startseite "dashboard" ist, nichts tun + if ($defaultStartPage === 'dashboard') { + return; + } + + // Zur konfigurierten Startseite weiterleiten + rex_response::sendRedirect(rex_url::backendPage('upkeep/' . $defaultStartPage)); + exit; + } } diff --git a/package.yml b/package.yml index 5c0b7d9..1a2765f 100644 --- a/package.yml +++ b/package.yml @@ -133,3 +133,5 @@ default_config: mail_security_enabled: true reporting_enabled: true ips_enabled: true + # Startseite + default_start_page: 'dashboard' diff --git a/pages/admin_settings.php b/pages/admin_settings.php index f723cfb..0658b50 100644 --- a/pages/admin_settings.php +++ b/pages/admin_settings.php @@ -47,6 +47,27 @@ $addon->setConfig('reporting_enabled', $reportingEnabled); $addon->setConfig('ips_enabled', $ipsEnabled); + // Startseite speichern + $defaultStartPage = rex_post('default_start_page', 'string', 'dashboard'); + + // Validierung: Nur erlaubte Werte zulassen + $allowedStartPages = [ + 'dashboard', + 'dashboard_admin', + 'maintenance/frontend', + 'maintenance/backend', + 'ips', + 'security_advisor', + 'mail_security', + 'reporting', + ]; + + if (!in_array($defaultStartPage, $allowedStartPages, true)) { + $defaultStartPage = 'dashboard'; // Fallback auf Standard + } + + $addon->setConfig('default_start_page', $defaultStartPage); + // Prüfe ob die Werte tatsächlich gespeichert wurden $savedSecurityAdvisor = $addon->getConfig('security_advisor_enabled', true); $savedMailSecurity = $addon->getConfig('mail_security_enabled', true); @@ -184,6 +205,38 @@
Als Administrator können Sie Wartungshinweise für bestimmte System-Checks temporär freigeben.