feat: Konto-Sicherheit gebündelt + Einstellungen aufgeräumt
- Neue Seite „Mein Konto" (/konto, für alle Nutzer): eigenes Passwort ändern (inkl. Richtlinien-Anzeige) + Zwei-Faktor verwalten; erreichbar über den Nutzer-Chip in der Seitenleisten-Fußzeile - Einstellungen: 2FA-Karte entfernt (liegt jetzt bei „Mein Konto"), Karten in ein mehrspaltiges Raster gruppiert - Menüpunkt „Einstellungen" unter die Überschrift „System" verschoben (für alle Nutzer sichtbar; „Benutzer" bleibt Admin-only) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+6
-8
@@ -15,6 +15,7 @@ import Import from "./pages/Import";
|
||||
import Users from "./pages/Users";
|
||||
import Settings from "./pages/Settings";
|
||||
import TwoFactor from "./pages/TwoFactor";
|
||||
import Account from "./pages/Account";
|
||||
|
||||
const navClass = ({ isActive }) => (isActive ? "nav-link active" : "nav-link");
|
||||
|
||||
@@ -49,19 +50,15 @@ function Sidebar() {
|
||||
<NavItem to="/buchungen" icon="arrow-left-right" label={t("nav.transactions")} />
|
||||
<NavItem to="/budget" icon="pie-chart" label={t("nav.budget")} />
|
||||
<NavItem to="/import" icon="download" label={t("nav.import")} />
|
||||
<div className="nav-section">{t("nav.system")}</div>
|
||||
<NavItem to="/settings" icon="settings" label={t("nav.settings")} />
|
||||
{isAdmin && (
|
||||
<>
|
||||
<div className="nav-section">{t("nav.system")}</div>
|
||||
<NavItem to="/users" icon="users" label={t("nav.users")} />
|
||||
</>
|
||||
)}
|
||||
{isAdmin && <NavItem to="/users" icon="users" label={t("nav.users")} />}
|
||||
</nav>
|
||||
<div className="sidebar-foot">
|
||||
<div className="sidebar-user">
|
||||
<NavLink to="/konto" className="sidebar-user" title={t("account.title")}>
|
||||
<span className="name">{user?.display_name || user?.username}</span>
|
||||
<span className="role">{isAdmin ? t("common.admin") : t("common.user")}</span>
|
||||
</div>
|
||||
</NavLink>
|
||||
<button className="btn-icon" onClick={handleLogout} title={t("common.logout")}>
|
||||
<Icon name="logout" size={18} />
|
||||
</button>
|
||||
@@ -140,6 +137,7 @@ export default function App() {
|
||||
<Route path="/budget" element={<Protected wide><Budget /></Protected>} />
|
||||
<Route path="/import" element={<Protected wide><Import /></Protected>} />
|
||||
<Route path="/settings" element={<Protected><Settings /></Protected>} />
|
||||
<Route path="/konto" element={<Protected><Account /></Protected>} />
|
||||
<Route path="/zwei-faktor" element={<Protected><TwoFactor /></Protected>} />
|
||||
<Route path="/users" element={<Protected adminOnly><Users /></Protected>} />
|
||||
<Route path="*" element={<Navigate to="/" replace />} />
|
||||
|
||||
Reference in New Issue
Block a user