requirePermission(SystemFirewallLogService::PERMISSION_READ); return $this->status->systemMetrics($tenantId, $since); } public function maintenanceStatus(): array { $this->requirePermission(self::PERMISSION_MAINTENANCE_READ); return $this->status->maintenanceStatus(); } public function updateTenantConfiguration( string $tenantId, bool $enabled, int $maxAuthFailures, int $authFailureWindow, int $autoBlockDuration, string $reason ): ?array { $this->requirePermission(self::PERMISSION_SETTINGS_MANAGE); return $this->settings->update( $tenantId, $enabled, $maxAuthFailures, $authFailureWindow, $autoBlockDuration, $reason, $this->identity->identifier() ); } private function requirePermission(string $permission): void { if (!$this->identity->hasPermission($permission)) { throw new \RuntimeException("Missing required permission: {$permission}"); } } }