File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -473,6 +473,7 @@ def parse_section(section):
473473WEBUI_AUTH_TRUSTED_EMAIL_HEADER = os .environ .get ('WEBUI_AUTH_TRUSTED_EMAIL_HEADER' , None )
474474WEBUI_AUTH_TRUSTED_NAME_HEADER = os .environ .get ('WEBUI_AUTH_TRUSTED_NAME_HEADER' , None )
475475WEBUI_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
478479ENABLE_PASSWORD_VALIDATION = os .environ .get ('ENABLE_PASSWORD_VALIDATION' , 'False' ).lower () == 'true'
Original file line number Diff line number Diff line change 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'
You can’t perform that action at this time.
0 commit comments