feat: getrennte Login-Seiten für User (/), Admins (/admin/login)
- /admin/login: neue Login-Seite nur für auditor, admin, domain_admin, superadmin - /: blockiert Admin-Rollen mit Hinweis auf /admin - useAuth: neuer loginPage-Parameter für flexiblen Unauthentifiziert-Redirect - /admin: leitet bei Nicht-Auth zu /admin/login statt / Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ export function hasRole(userRole: string, required: string): boolean {
|
||||
return (roleLevels[userRole] ?? 0) >= (roleLevels[required] ?? 0);
|
||||
}
|
||||
|
||||
export function useAuth(requireRole?: "admin" | "domain_admin" | "superadmin" | "auditor") {
|
||||
export function useAuth(requireRole?: "admin" | "domain_admin" | "superadmin" | "auditor", loginPage = "/") {
|
||||
const router = useRouter();
|
||||
const cached = getCachedUser();
|
||||
const [user, setUser] = useState(cached);
|
||||
@@ -49,9 +49,9 @@ export function useAuth(requireRole?: "admin" | "domain_admin" | "superadmin" |
|
||||
setLoading(false);
|
||||
} catch {
|
||||
setCachedUser(null);
|
||||
router.replace("/");
|
||||
router.replace(loginPage);
|
||||
}
|
||||
}, [router, requireRole]);
|
||||
}, [router, requireRole, loginPage]);
|
||||
|
||||
useEffect(() => {
|
||||
checkAuth();
|
||||
|
||||
Reference in New Issue
Block a user