Skip to content

Commit 464462b

Browse files
committed
enh: WEBUI_AUTH_TRUSTED_ROLE_HEADER
1 parent a1aceb5 commit 464462b

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

backend/open_webui/env.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,7 @@ def parse_section(section):
473473
WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os.environ.get('WEBUI_AUTH_TRUSTED_EMAIL_HEADER', None)
474474
WEBUI_AUTH_TRUSTED_NAME_HEADER = os.environ.get('WEBUI_AUTH_TRUSTED_NAME_HEADER', None)
475475
WEBUI_AUTH_TRUSTED_GROUPS_HEADER = os.environ.get('WEBUI_AUTH_TRUSTED_GROUPS_HEADER', None)
476+
WEBUI_AUTH_TRUSTED_ROLE_HEADER = os.environ.get('WEBUI_AUTH_TRUSTED_ROLE_HEADER', None)
476477

477478

478479
ENABLE_PASSWORD_VALIDATION = os.environ.get('ENABLE_PASSWORD_VALIDATION', 'False').lower() == 'true'

backend/open_webui/routers/auths.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
WEBUI_AUTH_TRUSTED_EMAIL_HEADER,
3636
WEBUI_AUTH_TRUSTED_NAME_HEADER,
3737
WEBUI_AUTH_TRUSTED_GROUPS_HEADER,
38+
WEBUI_AUTH_TRUSTED_ROLE_HEADER,
3839
WEBUI_AUTH_COOKIE_SAME_SITE,
3940
WEBUI_AUTH_COOKIE_SECURE,
4041
WEBUI_AUTH_SIGNOUT_REDIRECT_URL,
@@ -572,6 +573,16 @@ async def signin(
572573
if group_names:
573574
Groups.sync_groups_by_group_names(user.id, group_names, db=db)
574575

576+
if WEBUI_AUTH_TRUSTED_ROLE_HEADER and user:
577+
trusted_role = request.headers.get(WEBUI_AUTH_TRUSTED_ROLE_HEADER, '').lower().strip()
578+
if trusted_role in {'admin', 'user', 'pending'}:
579+
if user.role != trusted_role:
580+
Users.update_user_role_by_id(user.id, trusted_role, db=db)
581+
elif trusted_role:
582+
log.warning(
583+
f'Ignoring invalid trusted role header value: {trusted_role}'
584+
)
585+
575586
elif WEBUI_AUTH == False:
576587
admin_email = 'admin@localhost'
577588
admin_password = 'admin'

0 commit comments

Comments
 (0)