Files
tribunal-app/src/app/admin/page.tsx
T
Valentin ROBIN f462cff8a7 Retire le bouton "Nouveau round" du Conseil des Archontes
Un seul round sur toute la semaine : plus besoin de pouvoir
réinitialiser le repère de classement depuis l'admin. La logique des
flèches de progression (previous_rank, reset_rank_reference) reste en
place, simplement plus rien ne la déclenche.
2026-07-27 18:53:22 +02:00

44 lines
1.3 KiB
TypeScript

import { redirect } from "next/navigation";
import { createClient } from "@/lib/supabase/server";
import { AdminMembersTable } from "./admin-members-table";
export default async function AdminPage() {
const supabase = await createClient();
const {
data: { user },
} = await supabase.auth.getUser();
if (!user) {
redirect("/login");
}
const { data: callerProfile } = await supabase
.from("profiles")
.select("role")
.eq("id", user.id)
.single();
// Vérification côté serveur : un "public" ne doit jamais pouvoir
// atteindre cette page, même en tapant l'URL directement.
if (callerProfile?.role !== "judge") {
redirect("/leaderboard");
}
const { data: members } = await supabase
.from("profiles")
.select("id, pseudo, role, pseudo_locked, avatar_url")
.order("pseudo", { ascending: true });
return (
<div className="mx-auto w-full max-w-3xl px-4 py-8">
<div className="mb-6">
<h1 className="font-heading text-2xl tracking-[0.1em] text-gold-bright uppercase">
Le Conseil des Archontes
</h1>
<p className="font-serif text-sm text-marble/60 italic">Administration des Citoyens</p>
</div>
<AdminMembersTable members={members ?? []} currentUserId={user.id} />
</div>
);
}