Upload via GUI (28 Dateien)
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
declare(strict_types=1);
|
||||
/** Verwaltung der Webseite: Anmelden, Pakete veröffentlichen, Versionen entfernen. */
|
||||
require_once __DIR__ . '/inc/layout.php';
|
||||
require_once __DIR__ . '/inc/push.php';
|
||||
|
||||
session_set_cookie_params(['lifetime' => 0, 'path' => '/', 'secure' => !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off', 'httponly' => true, 'samesite' => 'Strict']);
|
||||
session_name('plugin_site_admin');
|
||||
@@ -71,6 +72,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if ($res['ok']) $message = "Veröffentlicht: {$res['slug']} {$res['version']} (" . ($res['signed'] ? 'signiert' : 'NICHT signiert, kein Signierschlüssel eingerichtet') . ').';
|
||||
else $error = $res['error'];
|
||||
}
|
||||
} elseif (in_array($action, ['push_block', 'push_unblock', 'push_delete'], true)) {
|
||||
$pid = (string) ($_POST['id'] ?? '');
|
||||
if (preg_match('/^[a-f0-9]{24}$/', $pid)) {
|
||||
$pp = push_db();
|
||||
if ($action === 'push_delete') $pp->prepare('DELETE FROM push_installs WHERE id = ?')->execute([$pid]);
|
||||
else $pp->prepare('UPDATE push_installs SET blocked = ? WHERE id = ?')->execute([$action === 'push_block' ? 1 : 0, $pid]);
|
||||
$message = ['push_block' => 'Installation gesperrt.', 'push_unblock' => 'Installation entsperrt.', 'push_delete' => 'Installation gelöscht (sie meldet sich beim nächsten Senden von selbst neu an).'][$action];
|
||||
} else {
|
||||
$error = 'Ungültige Installation.';
|
||||
}
|
||||
} elseif ($action === 'delete') {
|
||||
$message = site_delete_version((int) ($_POST['id'] ?? 0)) ? 'Version entfernt.' : null;
|
||||
$error = $message ? null : 'Version nicht gefunden.';
|
||||
@@ -116,6 +127,21 @@ site_header('Verwaltung');
|
||||
<button type="submit">Veröffentlichen</button>
|
||||
</form>
|
||||
|
||||
<h2>Push-Dienst (Android-App)</h2>
|
||||
<?php $pushSa = push_service_account(); $pushRows = push_db()->query('SELECT * FROM push_installs ORDER BY COALESCE(last_used_at, created_at) DESC LIMIT 200')->fetchAll(); ?>
|
||||
<p class="<?= $pushSa ? 'ok' : 'warn' ?>"><?= $pushSa ? '✓ Firebase-Dienstkonto eingebaut (Projekt ' . site_h($pushSa['project_id']) . ').' : 'Kein Firebase-Dienstkonto eingebaut: schluessel/firebase-dienstkonto.json fehlt beim Bauen, Push-Nachrichten sind nicht möglich.' ?></p>
|
||||
<?php if (!$pushRows): ?><p class="muted">Noch keine DeskHub-Installation angemeldet.</p><?php else: ?>
|
||||
<table class="admin">
|
||||
<caption>Angemeldete DeskHub-Installationen (<?= count($pushRows) ?>)</caption>
|
||||
<?php foreach ($pushRows as $p): ?>
|
||||
<tr><td><?= site_h($p['name'] !== '' ? $p['name'] : $p['id']) ?></td><td><?= site_h(substr((string) $p['created_at'], 0, 16)) ?></td><td><?= $p['last_used_at'] ? 'zuletzt ' . site_h(substr((string) $p['last_used_at'], 0, 16)) : 'noch nie genutzt' ?></td><td><?= (int) $p['sent_total'] ?> gesendet</td>
|
||||
<td><?= (int) $p['blocked'] === 1 ? '<span class="warn">gesperrt</span>' : '<span class="ok">aktiv</span>' ?></td>
|
||||
<td><form method="post"><input type="hidden" name="action" value="<?= (int) $p['blocked'] === 1 ? 'push_unblock' : 'push_block' ?>"><input type="hidden" name="csrf" value="<?= site_h(admin_csrf()) ?>"><input type="hidden" name="id" value="<?= site_h($p['id']) ?>"><button type="submit" class="link"><?= (int) $p['blocked'] === 1 ? 'Entsperren' : 'Sperren' ?></button></form></td>
|
||||
<td><form method="post" data-confirm="Installation wirklich löschen?"><input type="hidden" name="action" value="push_delete"><input type="hidden" name="csrf" value="<?= site_h(admin_csrf()) ?>"><input type="hidden" name="id" value="<?= site_h($p['id']) ?>"><button type="submit" class="link">Löschen</button></form></td></tr>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2>Veröffentlichte Pakete</h2>
|
||||
<?php foreach (['plugin' => 'Plugins', 'theme' => 'Themes'] as $t => $label): $items = site_items($t); ?>
|
||||
<h3><?= site_h($label) ?></h3>
|
||||
|
||||
Reference in New Issue
Block a user