From 4f3db6142ded2b7d353f9a03dcd376b173acc6dc Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Fri, 27 Mar 2026 14:50:16 +0100 Subject: [PATCH] =?UTF-8?q?Fix:=20Login=20case-insensitive,=20Settings=20z?= =?UTF-8?q?usammengef=C3=BChrt,=20SVG-Icon,=20Copyright=20einzeilig=20-=20?= =?UTF-8?q?Login:=20Benutzername=20wird=20case-insensitiv=20verglichen=20(?= =?UTF-8?q?func.lower=20auf=20beiden=20Seiten)=20-=20Benutzer=20anlegen:?= =?UTF-8?q?=20Username=20wird=20immer=20lowercase=20gespeichert=20-=20Eins?= =?UTF-8?q?tellungen:=20Panels=20"Darstellung",=20"Ansicht=20&=20Raster"?= =?UTF-8?q?=20und=20"Ausgeblendete=20Kalender"=20zu=20einem=20einzigen=20P?= =?UTF-8?q?anel=20zusammengef=C3=BChrt=20-=20App-Icon:=20Emoji=20?= =?UTF-8?q?=F0=9F=93=85=20durch=20plattformunabh=C3=A4ngiges=20Inline-SVG?= =?UTF-8?q?=20ersetzt=20-=20Copyright:=20white-space:nowrap=20+=20 ?= =?UTF-8?q?=20damit=20Zeile=20nie=20umbricht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routers/auth_router.py | 7 ++++--- backend/routers/users_router.py | 5 +++-- frontend/css/app.css | 1 + frontend/index.html | 29 +++++++++++------------------ 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/backend/routers/auth_router.py b/backend/routers/auth_router.py index 4376f94..3f18f7e 100644 --- a/backend/routers/auth_router.py +++ b/backend/routers/auth_router.py @@ -4,6 +4,7 @@ import pyotp from fastapi import APIRouter, Depends, HTTPException, status from fastapi.security import OAuth2PasswordRequestForm from pydantic import BaseModel +from sqlalchemy import func from sqlalchemy.orm import Session import models @@ -39,7 +40,7 @@ def setup(req: SetupRequest, db: Session = Depends(get_db)): if db.query(models.User).count() > 0: raise HTTPException(400, "Setup already completed") user = models.User( - username=req.username, + username=req.username.lower(), email=req.email, password_hash=get_password_hash(req.password), is_admin=True, @@ -58,7 +59,7 @@ def login( form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db) ): user = ( - db.query(models.User).filter(models.User.username == form_data.username).first() + db.query(models.User).filter(func.lower(models.User.username) == form_data.username.lower()).first() ) if not user or not verify_password(form_data.password, user.password_hash): raise HTTPException( @@ -78,7 +79,7 @@ def login( @router.post("/login") def login_json(req: LoginRequest, db: Session = Depends(get_db)): user = ( - db.query(models.User).filter(models.User.username == req.username).first() + db.query(models.User).filter(func.lower(models.User.username) == req.username.lower()).first() ) if not user or not verify_password(req.password, user.password_hash): raise HTTPException( diff --git a/backend/routers/users_router.py b/backend/routers/users_router.py index b1a3551..7b50248 100644 --- a/backend/routers/users_router.py +++ b/backend/routers/users_router.py @@ -2,6 +2,7 @@ from typing import Optional from fastapi import APIRouter, Depends, HTTPException from pydantic import BaseModel +from sqlalchemy import func from sqlalchemy.orm import Session import models @@ -40,10 +41,10 @@ def create_user( db: Session = Depends(get_db), _: models.User = Depends(get_current_admin), ): - if db.query(models.User).filter(models.User.username == req.username).first(): + if db.query(models.User).filter(func.lower(models.User.username) == req.username.lower()).first(): raise HTTPException(400, "Username already taken") user = models.User( - username=req.username, + username=req.username.lower(), email=req.email, password_hash=get_password_hash(req.password), is_admin=req.is_admin, diff --git a/frontend/css/app.css b/frontend/css/app.css index 7277927..5b6e898 100644 --- a/frontend/css/app.css +++ b/frontend/css/app.css @@ -355,6 +355,7 @@ a { color: var(--primary); text-decoration: none; } text-align: center; cursor: pointer; background: none; border: none; border-top: 1px solid var(--border); transition: color var(--transition); + white-space: nowrap; position: sticky; bottom: 0; background: var(--bg-sidebar); } diff --git a/frontend/index.html b/frontend/index.html index bf053c1..35625cd 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -70,7 +70,7 @@ - + @@ -83,7 +83,7 @@ @@ -170,7 +170,7 @@
- + @@ -390,17 +390,16 @@
- -
+ +
+

Farben

@@ -441,11 +440,8 @@
-
- -
-

Kalenderansicht

+

Kalenderansicht