Kein Zugriff auf Admin Apps.
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 = '
Admin Registry
= $h($sectionMeta[$section]['description']) ?>
Registry
| Titel | Scope | Typ | LDAP-Gruppen | Route | Flags |
|---|---|---|---|---|---|
|
= $h((string) ($app['title'] ?? '')) ?>
= $h((string) ($app['summary'] ?? '')) ?>
|
= $h((string) ($app['app_scope'] ?? '')) ?> | = $h(!empty($app['installable']) ? 'Custom App' : 'System') ?> | = $h((string) ($app['entry_route'] ?? '')) ?> |
Desktop
Widget
Tray
Default
Logoff Desktop
Admin only
|
Installation
Neue Apps koennen als Modul-Verzeichnis unter custom/apps/ liegen. Fuer ZIP-Dateien steht der eigentliche Installer im Bereich Installation zur Verfuegung.
Flags
Default bedeutet: Die App wird fuer neue Benutzer oder fuer Benutzer ohne explizite Auswahl initial vorausgewaehlt. Logoff Desktop bedeutet: Die App darf bereits ohne Login auf der offenen Desktop-Oberflaeche erscheinen, sofern sie als Desktop-App darstellbar ist.
Gespeichert wird in = $h((string) ($meta['app_access_config_path'] ?? '')) ?>. Dort liegen sowohl LDAP-Gruppen als auch die Freigabe fuer den offenen Desktop.
ZIP-Installer
Das ZIP muss genau ein Modulverzeichnis enthalten. Geprueft werden oberstes Verzeichnis, Pflichtdateien wie module.json und desktop.php, Name-Konflikte sowie einfache Hochrisiko-Muster im Code.
Checks
Der Installer erwartet ein einzelnes Modulverzeichnis im ZIP, prueft auf module.json und desktop.php, blockiert Pfad-Traversal, Symlinks und typische Hochrisiko-Funktionen wie exec() oder shell_exec(). Das ist ein Plausibilitaetscheck, keine vollstaendige Sicherheitsgarantie.
Widget Registry
Dieser Bereich ist rein technisch gemeint: Er zeigt, welche Widgets derzeit registriert sind, aus welcher Quelle sie kommen und welche App oder API damit verbunden ist. Er ist keine separate Benutzerverwaltung.
| Widget | Zone | Quelle | Launch-App | Status-API |
|---|---|---|---|---|
|
= $h((string) ($widget['title'] ?? '')) ?>
= $h((string) ($widget['summary'] ?? '')) ?>
|
= $h((string) ($widget['zone'] ?? 'sidebar')) ?> |
= $h((string) (($widget['source_app_id'] ?? '') !== '' ? $widget['source_app_id'] : 'global')) ?>
Modul: = $h((string) $widget['source_module_id']) ?>
|
= $h((string) ($widget['launch_app_id'] ?? '')) ?> |
= $h((string) ($widget['status_api'] ?? '')) ?> |
Addon
Die Werte werden in der aktuellen Environment-Datei gespeichert und beim Deploy in das gemischte `config/`-Verzeichnis uebernommen.