Add user list to admin panel and validated/guest badges on posts

Admin panel: new "Käyttäjät" section showing all registered users with
post count, likes count, email and join date.

Posts: submissions by logged-in users show a green "Vahvistettu" badge,
while guest submissions show a random code (e.g. #L01U51) for tracking.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 12:02:50 +02:00
parent 69902035ab
commit 30d57c80c0
4 changed files with 94 additions and 4 deletions

22
api.php
View File

@@ -843,6 +843,28 @@ switch ($action) {
case 'admin_check':
ok(['loggedIn' => isAdmin()]);
case 'admin_users':
if (!isAdmin()) err('Unauthorized', 403);
$users = readData('users.json', []);
$posts = getOrInitPosts();
$result = [];
foreach ($users as $u) {
$nick = mb_strtolower($u['nickname']);
$postCount = 0;
foreach ($posts as $p) {
if (mb_strtolower($p['author'] ?? '') === $nick) $postCount++;
}
$result[] = [
'id' => $u['id'],
'nickname' => $u['nickname'],
'email' => $u['email'] ?? '',
'created' => $u['created'] ?? '',
'likes' => count($u['likes'] ?? []),
'postCount' => $postCount,
];
}
ok(['users' => $result]);
// ─── Käyttäjätunnukset ─────────────────────────────────────
case 'user_register':
$nickname = trim($body['nickname'] ?? '');