(request: Request, password: str = Form(...), next: Optional[str] = "/")
| 217 | |
| 218 | @app.post("/login") |
| 219 | async def login_submit(request: Request, password: str = Form(...), next: Optional[str] = "/"): |
| 220 | if is_default_security_config_active(): |
| 221 | return build_setup_password_redirect() |
| 222 | |
| 223 | expected = get_settings().webui_access_password.get_secret_value() |
| 224 | if not secrets.compare_digest(password, expected): |
| 225 | return _render_template( |
| 226 | request, |
| 227 | "login.html", |
| 228 | {"error": "Invalid password", "next": next or "/", "notice": ""}, |
| 229 | status_code=401, |
| 230 | ) |
| 231 | |
| 232 | response = RedirectResponse(url=next or "/", status_code=302) |
| 233 | auth_cookie = build_auth_token( |
| 234 | expected, |
| 235 | get_settings().webui_secret_key.get_secret_value(), |
| 236 | ) |
| 237 | response.set_cookie("webui_auth", auth_cookie, httponly=True, samesite="lax") |
| 238 | return response |
| 239 | |
| 240 | @app.get("/setup-password", response_class=HTMLResponse) |
| 241 | async def setup_password_page(request: Request): |
nothing calls this directly
no test coverage detected