feat: auto signup/login with WEBUI_AUTH_TRUSTED_EMAIL_HEADER

This commit is contained in:
Jun Siang Cheah 2024-03-28 10:34:57 +00:00
parent 29f13f34d3
commit 50f6addd6f
2 changed files with 28 additions and 29 deletions

View file

@ -105,8 +105,9 @@ async def signin(request: Request, form_data: SigninForm):
if WEBUI_AUTH_TRUSTED_EMAIL_HEADER not in request.headers:
raise HTTPException(400,
detail=ERROR_MESSAGES.INVALID_TRUSTED_HEADER)
trusted_email = request.headers[WEBUI_AUTH_TRUSTED_EMAIL_HEADER].lower(
)
trusted_email = request.headers[WEBUI_AUTH_TRUSTED_EMAIL_HEADER].lower()
if not Users.get_user_by_email(trusted_email.lower()):
await signup(request, SignupForm(email=trusted_email, password=str(uuid.uuid4()), name=trusted_email))
user = Auths.authenticate_user_by_trusted_header(trusted_email)
else:
user = Auths.authenticate_user(form_data.email.lower(),
@ -150,17 +151,6 @@ async def signup(request: Request, form_data: SignupForm):
if Users.get_user_by_email(form_data.email.lower()):
raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN)
if WEBUI_AUTH_TRUSTED_EMAIL_HEADER:
if WEBUI_AUTH_TRUSTED_EMAIL_HEADER not in request.headers:
raise HTTPException(400,
detail=ERROR_MESSAGES.INVALID_TRUSTED_HEADER)
trusted_email = request.headers[WEBUI_AUTH_TRUSTED_EMAIL_HEADER].lower(
)
if trusted_email != form_data.email:
raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_MISMATCH)
# TODO: Yolo hack to assign a password
form_data.password = str(uuid.uuid4())
try:
role = (
"admin"