From 7618101b1b26edfea174e32e80716246ddef754d Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sat, 5 Feb 2022 03:21:46 -0800 Subject: [PATCH] fix: depend on OutOfDateTS for flag state It was found in the aur.al database that some records have a non-null flagger, but are not flagged. Using the flagger relationship, we were false redirecting away from the flag page. Signed-off-by: Kevin Morris --- aurweb/routers/pkgbase.py | 6 +++--- test/test_pkgbase_routes.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/aurweb/routers/pkgbase.py b/aurweb/routers/pkgbase.py index 3aa73a02..b014ddc5 100644 --- a/aurweb/routers/pkgbase.py +++ b/aurweb/routers/pkgbase.py @@ -78,7 +78,7 @@ async def pkgbase_voters(request: Request, name: str) -> Response: async def pkgbase_flag_comment(request: Request, name: str): pkgbase = get_pkg_or_base(name, PackageBase) - if pkgbase.Flagger is None: + if pkgbase.OutOfDateTS is None: return RedirectResponse(f"/pkgbase/{name}", status_code=HTTPStatus.SEE_OTHER) @@ -120,7 +120,7 @@ async def pkgbase_flag_get(request: Request, name: str): pkgbase = get_pkg_or_base(name, PackageBase) has_cred = request.user.has_credential(creds.PKGBASE_FLAG) - if not has_cred or pkgbase.Flagger is not None: + if not has_cred or pkgbase.OutOfDateTS is not None: return RedirectResponse(f"/pkgbase/{name}", status_code=HTTPStatus.SEE_OTHER) @@ -144,7 +144,7 @@ async def pkgbase_flag_post(request: Request, name: str, status_code=HTTPStatus.BAD_REQUEST) has_cred = request.user.has_credential(creds.PKGBASE_FLAG) - if has_cred and not pkgbase.Flagger: + if has_cred and not pkgbase.OutOfDateTS: now = time.utcnow() with db.begin(): pkgbase.OutOfDateTS = now diff --git a/test/test_pkgbase_routes.py b/test/test_pkgbase_routes.py index 3f5a791a..0287a026 100644 --- a/test/test_pkgbase_routes.py +++ b/test/test_pkgbase_routes.py @@ -804,7 +804,7 @@ def test_pkgbase_flag(client: TestClient, user: User, maintainer: User, pkgbase = package.PackageBase # We shouldn't have flagged the package yet; assert so. - assert pkgbase.Flagger is None + assert pkgbase.OutOfDateTS is None cookies = {"AURSID": user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{pkgbase.Name}/flag"