Rollen & Berechtigungen
Zugriffskontrolle mit Benutzerrollen, Prozedur-Middleware und Sperrprüfungen.
User.role unterscheidet normale Konten mit user und erweiterte Konten mit admin. ADMIN_EMAILS kann bei Registrierung die Adminrolle gewähren; für vorhandene Konten gibt es den expliziten Beförderungsbefehl. Teamrollen sind das getrennte Enum OWNER / MEMBER.
Server-Guards wiederverwenden
Importieren Sie je nach Bedarf publicProcedure, protectedProcedure oder adminProcedure aus packages/api/trpc/base.ts. Implementieren Sie Rollen-Middleware nicht erneut in einzelnen Funktionen. Ein nicht angemeldeter Adminaufruf scheitert mit UNAUTHORIZED; ein angemeldeter Nicht-Admin mit FORBIDDEN.
Nutzen Sie für Teamressourcen ctx.abilities.isTeamMember(teamId) oder isTeamOwner(teamId) und begrenzen Sie Datenbankzugriffe auf dieses Team. Die vorhandenen Helfer gewähren Admins bewusst Teameigentümerzugriff. Eine ausgeblendete UI-Aktion ist keine Autorisierungsgrenze.
Kontosperren
Das Schema enthält banned, banReason und banExpires. Nutzen Sie die vorhandenen Better-Auth-Adminoperationen für Sperren und Sitzungsverwaltung, statt Felder direkt zu ändern und widerrufene Sitzungen anzunehmen. Prüfen Sie bei Erweiterungen der Moderation sowohl vorhandene Sitzungen als auch neue Anmeldungen.
Siehe Super Admin Kontrollzentrum.