Add admin Articles (CRUD) + Bans resources

- Articles: list / new / edit / delete (websiteArticles), unique-slug
  generation via slugify() (pure, unit-tested); staff-gated server actions.
- Bans: list active bans (ban_expire > now), create ban (writes the bans row +
  RCON disconnect) with type/duration/reason, lift ban; staff-gated actions.
- Admin nav extended (Articles, Bans).

Verified: tsc exit 0, vitest 48/48, next build exit 0 (7 /admin routes).
This commit is contained in:
Simo committed 2026-06-28 12:52:38 +02:00
1 parent 9f81096f05
commit 5861d9f1f5
9 files changed
+310 -1

No files matched your search

+2
View File
@@ -16,6 +16,8 @@ export default async function AdminLayout({ children }: { children: ReactNode })
<nav style={{ display: "grid", gap: "0.45rem" }}>
<Link href="/admin">Dashboard</Link>
<Link href="/admin/users">Users</Link>
<Link href="/admin/articles">Articles</Link>
<Link href="/admin/bans">Bans</Link>
</nav>
</aside>
<section>{children}</section>