fix: Superadmin wird direkt zu /admin weitergeleitet
- Login: superadmin → /admin, alle anderen → /search - Cached-Session: superadmin → /admin - Search-Seite: superadmin wird sofort zu /admin umgeleitet Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+6
-4
@@ -18,8 +18,9 @@ export default function LoginPage() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// Only redirect if we have a cached session — no API call, no loop risk
|
// Only redirect if we have a cached session — no API call, no loop risk
|
||||||
if (getCachedUser() !== null) {
|
const cached = getCachedUser();
|
||||||
router.replace("/search");
|
if (cached !== null) {
|
||||||
|
router.replace(cached.role === "superadmin" ? "/admin" : "/search");
|
||||||
}
|
}
|
||||||
}, [router]);
|
}, [router]);
|
||||||
|
|
||||||
@@ -29,8 +30,9 @@ export default function LoginPage() {
|
|||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await login(username, password);
|
const res = await login(username, password);
|
||||||
router.push("/search");
|
const role = res?.user?.role ?? "";
|
||||||
|
router.push(role === "superadmin" ? "/admin" : "/search");
|
||||||
} catch {
|
} catch {
|
||||||
setError("Anmeldung fehlgeschlagen. Bitte Zugangsdaten pruefen.");
|
setError("Anmeldung fehlgeschlagen. Bitte Zugangsdaten pruefen.");
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -114,9 +114,16 @@ export default function SearchPage() {
|
|||||||
[query, fromFilter, toFilter, dateFrom, dateTo, sort, hasAttachment, selectedLabelId]
|
[query, fromFilter, toFilter, dateFrom, dateTo, sort, hasAttachment, selectedLabelId]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Superadmin has no mail access — redirect to admin dashboard
|
||||||
|
useEffect(() => {
|
||||||
|
if (user?.role === "superadmin") {
|
||||||
|
router.replace("/admin");
|
||||||
|
}
|
||||||
|
}, [user, router]);
|
||||||
|
|
||||||
// Alle Mails beim Öffnen der Seite laden — direkt, ohne useCallback-Closure
|
// Alle Mails beim Öffnen der Seite laden — direkt, ohne useCallback-Closure
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!user) return;
|
if (!user || user.role === "superadmin") return;
|
||||||
setSearching(true);
|
setSearching(true);
|
||||||
searchEmails({ page: 1, page_size: PAGE_SIZE })
|
searchEmails({ page: 1, page_size: PAGE_SIZE })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user