v1.1: Rebrand Hinterstein Immobilien + echtes Auth-System
- Rebrand: Kunden-Logo, Joseph-Hinterstein-Portrait, Kontakt-Banner, Texte - Login-Pflicht auf /login (Route-Guard), Gruppen Verwaltung/Mieter - Mieter-Registrierung per einmaligem Registrierungscode - Benutzerverwaltung als 6. Modul (/benutzer, nur Verwaltung) - Demo-Zugänge mit Passwort 0815 (j.hinterstein, a.berger, m.wolf) - Mail-Server-API: Token-Auth (/send, X-Api-Token), Mail-Stack live auf Server - Store-Key hinterstein-mieterportal-v2, Doku (kimi.md, README) nachgeführt
This commit is contained in:
+25
-4
@@ -1,5 +1,5 @@
|
||||
import { Routes, Route } from 'react-router'
|
||||
import { StoreProvider } from './store/store'
|
||||
import { Routes, Route, Navigate } from 'react-router'
|
||||
import { StoreProvider, useStore } from './store/store'
|
||||
import AppLayout from './components/AppLayout'
|
||||
import Login from './pages/Login'
|
||||
import Dashboard from './pages/Dashboard'
|
||||
@@ -7,19 +7,40 @@ import Payments from './pages/Payments'
|
||||
import Tickets from './pages/Tickets'
|
||||
import Documents from './pages/Documents'
|
||||
import Messages from './pages/Messages'
|
||||
import BenutzerVerwaltung from './pages/BenutzerVerwaltung'
|
||||
|
||||
function RequireAuth({ children }: { children: React.ReactElement }) {
|
||||
const { me } = useStore()
|
||||
if (!me) return <Navigate to="/login" replace />
|
||||
return children
|
||||
}
|
||||
|
||||
function LoginGate() {
|
||||
const { me } = useStore()
|
||||
if (me) return <Navigate to="/" replace />
|
||||
return <Login />
|
||||
}
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<StoreProvider>
|
||||
<Routes>
|
||||
<Route path="/login" element={<Login />} />
|
||||
<Route element={<AppLayout />}>
|
||||
<Route path="/login" element={<LoginGate />} />
|
||||
<Route
|
||||
element={
|
||||
<RequireAuth>
|
||||
<AppLayout />
|
||||
</RequireAuth>
|
||||
}
|
||||
>
|
||||
<Route path="/" element={<Dashboard />} />
|
||||
<Route path="/mietkonto" element={<Payments />} />
|
||||
<Route path="/schadensmeldungen" element={<Tickets />} />
|
||||
<Route path="/dokumente" element={<Documents />} />
|
||||
<Route path="/nachrichten" element={<Messages />} />
|
||||
<Route path="/benutzer" element={<BenutzerVerwaltung />} />
|
||||
</Route>
|
||||
<Route path="*" element={<Navigate to="/" replace />} />
|
||||
</Routes>
|
||||
</StoreProvider>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user