strtolower(trim($group, '/')), array_values(array_map('strval', (array) ($currentUser['groups'] ?? []))) ); $isPartial = !empty($_GET['partial']); if (!in_array('administrators', $currentGroups, true)) { http_response_code(403); $forbidden = '

Kein Zugriff auf Admin Apps.

'; if ($isPartial) { echo $forbidden; return; } ?> Admin Apps saveGiteaConfig([ 'base_url' => (string) ($_POST['base_url'] ?? ''), 'token' => (string) ($_POST['token'] ?? ''), 'owner' => (string) ($_POST['owner'] ?? ''), 'repositories' => (string) ($_POST['repositories'] ?? ''), 'poll_idle_seconds' => (string) ($_POST['poll_idle_seconds'] ?? ''), 'poll_running_seconds' => (string) ($_POST['poll_running_seconds'] ?? ''), 'visibility' => (string) ($_POST['visibility'] ?? ''), ]); $messages[] = 'Gitea-Deploy-Status-Konfiguration gespeichert.'; $section = 'integrations'; } } catch (\Throwable $exception) { $errors[] = $exception->getMessage(); } } } $bootstrap = $service->bootstrap(true); $apps = is_array($bootstrap['apps'] ?? null) ? $bootstrap['apps'] : []; $widgets = is_array($bootstrap['widgets'] ?? null) ? $bootstrap['widgets'] : []; $stats = is_array($bootstrap['stats'] ?? null) ? $bootstrap['stats'] : []; $meta = is_array($bootstrap['meta'] ?? null) ? $bootstrap['meta'] : []; $gitea = is_array($bootstrap['gitea'] ?? null) ? $bootstrap['gitea'] : []; $giteaConfig = is_array($gitea['config'] ?? null) ? $gitea['config'] : []; $giteaDiagnostics = is_array($gitea['diagnostics'] ?? null) ? $gitea['diagnostics'] : []; $h = static fn (?string $value): string => htmlspecialchars($value ?? '', ENT_QUOTES); $sectionUrl = static fn (string $targetSection): string => '/admin/apps/?section=' . rawurlencode($targetSection); $sectionMeta = [ 'overview' => [ 'label' => 'Apps', 'title' => 'App-Bestand und Scope', 'description' => 'Installierbare Fach-Apps, Systemtools und Core-Eintraege der Desktop-Shell im aktuellen Registry-Stand.', 'nav' => 'Registry und Freigaben pruefen.', ], 'widgets' => [ 'label' => 'Widgets', 'title' => 'Widget-Bereich und Quellen', 'description' => 'Widget-Inventar aus globaler Registry und Modul-Manifesten mit Quellen, Launch-App und Sichtbarkeit.', 'nav' => 'Widget-Quellen und Startpunkte pruefen.', ], 'integrations' => [ 'label' => 'Integrationen', 'title' => 'Gitea-Deploy-Status', 'description' => 'Erste echte Admin-Einstellung fuer das Deploy-Status-Addon inklusive Environment-Datei und Tray-Sichtbarkeit.', 'nav' => 'Addon-Konfiguration bearbeiten.', ], ]; ob_start(); ?>

Admin Registry

Administrators only Desktop Auth Section:
Ergebnis
Bitte pruefen
Installierbare Apps
Systemtools
Core-Apps

Registry

Desktop-Apps

Titel Scope Typ Route Flags
Desktop Widget Tray Default Admin only

Widget Registry

Alle Widgets

Globale Widgets und modulbasierte Widgets werden hier gemeinsam sichtbar. Modul-Widgets kommen bevorzugt aus `module.json`.

Widget Zone Quelle Launch-App Status-API
Modul:

Addon

Gitea-Deploy-Status

Die Werte werden in der aktuellen Environment-Datei gespeichert und beim Deploy in das gemischte `config/`-Verzeichnis uebernommen.

Aktuelle Datei

Der Tray ist fuer den aktuellen Benutzer .

Konfiguriert
Token vorhanden
Repos konfiguriert
Visibility
Admin Apps