Rechtesystem und Readmes überarbeitet

This commit is contained in:
2026-04-05 11:35:45 +02:00
parent eb35501712
commit 31c9612cc5
6 changed files with 222 additions and 34 deletions
+15 -13
View File
@@ -294,19 +294,21 @@ if ($loggedIn && !$hasFullAdminAccess && $pdoHeader !== null) {
<span></span>
</button>
<nav class="menu-panel" id="headerMenuPanel" hidden>
<div class="menu-cols">
<?php foreach ($menuGroups as $group): ?>
<div class="menu-group">
<div class="menu-title"><?= $group['title'] ?></div>
<?php foreach ($group['links'] as $link): ?>
<a href="<?= htmlspecialchars($publicBasePath . $link['href'], ENT_QUOTES, 'UTF-8') ?>">
<?= htmlspecialchars($link['label'], ENT_QUOTES, 'UTF-8') ?>
</a>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
</div>
<div class="menu-divider"></div>
<?php if ($loggedIn): ?>
<div class="menu-cols">
<?php foreach ($menuGroups as $group): ?>
<div class="menu-group">
<div class="menu-title"><?= $group['title'] ?></div>
<?php foreach ($group['links'] as $link): ?>
<a href="<?= htmlspecialchars($publicBasePath . $link['href'], ENT_QUOTES, 'UTF-8') ?>">
<?= htmlspecialchars($link['label'], ENT_QUOTES, 'UTF-8') ?>
</a>
<?php endforeach; ?>
</div>
<?php endforeach; ?>
</div>
<div class="menu-divider"></div>
<?php endif; ?>
<div class="menu-bottom">
<div class="menu-group">
<div class="menu-title">Konto</div>
+11 -9
View File
@@ -38,7 +38,7 @@ $publicBasePath = '../';
$pageTitle = 'Telegram-Testversand - AstroTools';
$headerIntroPre = 'Administration';
$headerIntroTitle = 'Telegram-Testversand';
$headerIntroSub = 'Testnachricht an alle verknuepften Telegram-Konten senden.';
$headerIntroSub = 'Testnachrichten nur an verknuepfte Master-Konten senden.';
$errors = [];
$successMessage = '';
$resultRows = [];
@@ -257,7 +257,7 @@ $currentUser = $stmtCurrentUser->fetch();
if (
!$currentUser ||
!isAdminLikeRole((string) $currentUser['role']) ||
!isMasterRole((string) $currentUser['role']) ||
(int) $currentUser['is_active'] !== 1
) {
$_SESSION = [];
@@ -271,11 +271,13 @@ $stmtRecipients = $pdo->query("
`id`,
`username`,
`display_name`,
`role`,
`telegram_username`,
`telegram_chat_id`,
`telegram_connected_at`
FROM `app_users`
WHERE `is_active` = 1
AND `role` = 'master'
AND `telegram_chat_id` IS NOT NULL
AND `telegram_chat_id` <> ''
ORDER BY COALESCE(`display_name`, `username`) ASC, `id` ASC
@@ -316,7 +318,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}
if (empty($recipients)) {
$errors[] = 'Es gibt derzeit keine verknuepften Telegram-Nutzer.';
$errors[] = 'Es gibt derzeit keine verknuepften Master-Konten mit Telegram.';
}
$targetRecipients = [];
@@ -387,7 +389,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
}
$successMessage = sprintf(
'Versand abgeschlossen: %d von %d Telegram-Nutzern erfolgreich erreicht.',
'Versand abgeschlossen: %d von %d Master-Konten erfolgreich erreicht.',
$successCount,
count($targetRecipients)
);
@@ -412,11 +414,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
<div class="card">
<h2>Testnachricht senden</h2>
<p class="hint">
Diese Seite sendet eine Nachricht an alle aktiven Benutzerkonten mit hinterlegter Telegram-Chat-ID.
Diese Seite sendet Testnachrichten ausschliesslich an aktive Master-Konten mit hinterlegter Telegram-Chat-ID.
</p>
<table class="data-table mb-lg">
<tr><td>Verknuepfte Telegram-Nutzer</td><td><?= count($recipients) ?></td></tr>
<tr><td>Verknuepfte Master-Konten</td><td><?= count($recipients) ?></td></tr>
<tr><td>Bot</td><td><?= h(($telegramConfig['bot_username'] ?? '') !== '' ? '@' . (string) $telegramConfig['bot_username'] : 'nicht konfiguriert') ?></td></tr>
</table>
@@ -436,7 +438,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
</label>
<label>
<input type="radio" name="send_mode" value="all" <?= $sendMode === 'all' ? 'checked' : '' ?>>
An alle verknuepften Nutzer senden
An alle verknuepften Master senden
</label>
</div>
@@ -465,14 +467,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
><?= h($messageText) ?></textarea>
</div>
<button type="submit" class="btn btn-primary">Testnachricht an alle senden</button>
<button type="submit" class="btn btn-primary">Testnachricht an Master senden</button>
</form>
</div>
<div class="card">
<h2>Empfaenger</h2>
<?php if (empty($recipients)): ?>
<p class="hint">Noch keine verknuepften Telegram-Konten vorhanden.</p>
<p class="hint">Noch keine verknuepften Master-Konten vorhanden.</p>
<?php else: ?>
<table class="data-table">
<thead>