Fix admin post-login redirect to canonical /admin/
This commit is contained in:
@@ -118,6 +118,11 @@ class EnvCredentialProvider(Provider):
|
||||
status_code=status_code,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _admin_home(request: Request) -> str:
|
||||
"""Use trailing slash to avoid mount redirect (which may emit absolute host)."""
|
||||
return request.app.admin_path.rstrip("/") + "/"
|
||||
|
||||
async def login_view(self, request: Request):
|
||||
return self._template_response(
|
||||
request=request,
|
||||
@@ -150,7 +155,7 @@ class EnvCredentialProvider(Provider):
|
||||
},
|
||||
)
|
||||
|
||||
response = RedirectResponse(url=request.app.admin_path, status_code=HTTP_303_SEE_OTHER)
|
||||
response = RedirectResponse(url=self._admin_home(request), status_code=HTTP_303_SEE_OTHER)
|
||||
expire = self.expire_seconds
|
||||
if remember_me == "on":
|
||||
expire = max(self.expire_seconds, 3600 * 24 * 30)
|
||||
@@ -183,7 +188,7 @@ class EnvCredentialProvider(Provider):
|
||||
request.state.admin = admin
|
||||
|
||||
if path.endswith(self.login_path) and admin:
|
||||
return RedirectResponse(url=request.app.admin_path, status_code=HTTP_303_SEE_OTHER)
|
||||
return RedirectResponse(url=self._admin_home(request), status_code=HTTP_303_SEE_OTHER)
|
||||
|
||||
return await call_next(request)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user