Auth role bugfixes (#17066)

* get correct role from header map

* fix profile endpoint
This commit is contained in:
Josh Hawkins 2025-03-10 08:59:24 -05:00 committed by GitHub
parent b72afb6895
commit cb25bd4a88
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -259,7 +259,7 @@ def auth(request: Request):
# pass the user header value from the upstream proxy if a mapping is specified # pass the user header value from the upstream proxy if a mapping is specified
# or use anonymous if none are specified # or use anonymous if none are specified
user_header = proxy_config.header_map.user user_header = proxy_config.header_map.user
role_header = proxy_config.header_map.get("role", "Remote-Role") role_header = proxy_config.header_map.role
success_response.headers["remote-user"] = ( success_response.headers["remote-user"] = (
request.headers.get(user_header, default="anonymous") request.headers.get(user_header, default="anonymous")
if user_header if user_header
@ -359,14 +359,14 @@ def auth(request: Request):
@router.get("/profile") @router.get("/profile")
def profile(request: Request): def profile(request: Request):
username = request.headers.get("remote-user", "anonymous") username = request.headers.get("remote-user", "anonymous")
if username != "anonymous": role = request.headers.get("remote-role")
if role is None and username != "anonymous":
try: try:
user = User.get_by_id(username) user = User.get_by_id(username)
role = getattr(user, "role", "viewer") role = getattr(user, "role", "viewer")
except DoesNotExist: except DoesNotExist:
role = "viewer" # Fallback if user deleted role = "viewer" # Fallback if user deleted
else:
role = None
return JSONResponse(content={"username": username, "role": role}) return JSONResponse(content={"username": username, "role": role})