Fix /settings redirect issue and add OAuth admin support

- Convert require_admin_access to proper decorator pattern
- Fix redirect loop that was sending all users to /
- Add is_admin flag handling for OAuth users (checks groups)
- Update SETTING_METADATA with all 102 settings from config.py
- Improve API admin check with type hints

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-08 06:02:21 +00:00
parent 5a4d21293b
commit c9e1de4845
4 changed files with 757 additions and 24 deletions
+5 -1
View File
@@ -24,9 +24,13 @@ logger = logging.getLogger(__name__)
router = APIRouter(prefix="/settings", tags=["settings"])
def require_admin(request: Request):
def require_admin(request: Request) -> dict:
"""
Dependency to ensure the user is an admin.
Raises HTTPException if not admin.
Returns:
User dict from session
"""
user = request.session.get("user")
if not user or not user.get("is_admin"):