Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 3 additions & 0 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
13 changes: 12 additions & 1 deletion lang/de_de.lang
Original file line number Diff line number Diff line change
Expand Up @@ -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
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
13 changes: 12 additions & 1 deletion lang/en_gb.lang
Original file line number Diff line number Diff line change
Expand Up @@ -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
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
32 changes: 32 additions & 0 deletions lib/Upkeep.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
2 changes: 2 additions & 0 deletions package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,5 @@ default_config:
mail_security_enabled: true
reporting_enabled: true
ips_enabled: true
# Startseite
default_start_page: 'dashboard'
53 changes: 53 additions & 0 deletions pages/admin_settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -184,6 +205,38 @@

<hr>

<!-- Standard-Startseite -->
<div class="form-group">
<label for="default_start_page">
<strong><?= $addon->i18n('upkeep_default_start_page') ?></strong>
</label>
<select name="default_start_page" id="default_start_page" class="form-control">
<?php
$currentStartPage = $addon->getConfig('default_start_page', 'dashboard');
$startPageOptions = [
'dashboard' => $addon->i18n('upkeep_start_page_dashboard'),
'dashboard_admin' => $addon->i18n('upkeep_start_page_dashboard_admin'),
'maintenance/frontend' => $addon->i18n('upkeep_start_page_maintenance_frontend'),
'maintenance/backend' => $addon->i18n('upkeep_start_page_maintenance_backend'),
'ips' => $addon->i18n('upkeep_start_page_ips'),
'security_advisor' => $addon->i18n('upkeep_start_page_security_advisor'),
'mail_security' => $addon->i18n('upkeep_start_page_mail_security'),
'reporting' => $addon->i18n('upkeep_start_page_reporting'),
];
foreach ($startPageOptions as $value => $label):
?>
<option value="<?= $value ?>" <?= $currentStartPage === $value ? 'selected' : '' ?>>
<?= $label ?>
</option>
<?php endforeach; ?>
</select>
<small class="help-block">
<?= $addon->i18n('upkeep_default_start_page_tooltip') ?>
</small>
</div>

<hr>

<h4>Admin-Wartungsfreigaben</h4>
<p class="text-muted">
Als Administrator können Sie Wartungshinweise für bestimmte System-Checks temporär freigeben.
Expand Down