diff --git a/components/Layout.tsx b/components/Layout.tsx index 83b6189..fc9ee08 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -29,23 +29,39 @@ export const Layout: React.FC<{ children: React.ReactNode }> = ({ children }) => useEffect(() => { const fetchCurrentUser = async () => { const storedUserId = localStorage.getItem('ctms_user_id'); - if (storedUserId) { + + if (!storedUserId) { + navigate('/login'); + return; + } + + try { const user = await getUserById(storedUserId); if (user) { setCurrentUser(user); + } else { + // User ID exists in storage but not in DB (deleted user?) + localStorage.removeItem('ctms_user_id'); + navigate('/login'); } + } catch (err) { + console.error("Failed to fetch user:", err); + // Fallback or error state } }; fetchCurrentUser(); - }, []); + }, [navigate]); const handleLogout = () => { localStorage.removeItem('ctms_user_id'); + localStorage.removeItem('ctms_tenant_id'); navigate('/login'); }; if (!currentUser) { - return