0
0
Fork 0
mirror of https://github.com/healthchecks/healthchecks.git synced 2025-04-07 22:25:35 +00:00

Update _refresh_last_active_date to also refresh user session

Fixes: 
This commit is contained in:
Pēteris Caune 2024-10-10 15:41:00 +03:00
parent e1ccf5f86a
commit d574fa65fc
No known key found for this signature in database
GPG key ID: E28D7679E9A9EDE2

View file

@ -201,13 +201,18 @@ def _get_rw_project_for_user(request: HttpRequest, code: UUID) -> Project:
return project
def _refresh_last_active_date(profile: Profile) -> None:
def _refresh_last_active_date(request: AuthenticatedHttpRequest) -> None:
"""Update last_active_date if it is more than a day old."""
profile = request.profile
if profile.last_active_date is None or (now() - profile.last_active_date).days > 0:
profile.last_active_date = now()
profile.save()
# Also modify session to trigger session cookie refresh
# and push forward its expiry date:
request.session["last_active"] = profile.last_active_date.timestamp()
return None
@ -221,7 +226,7 @@ def _get_referer_qs(request: HttpRequest) -> str:
@login_required
def checks(request: AuthenticatedHttpRequest, code: UUID) -> HttpResponse:
_refresh_last_active_date(request.profile)
_refresh_last_active_date(request)
project, rw = _get_project_for_user(request, code)
if request.GET.get("sort") in VALID_SORT_VALUES:
@ -378,6 +383,7 @@ def index(request: HttpRequest) -> HttpResponse:
# We now know user is logged, tell the type checker request.profile exists-
request = cast(AuthenticatedHttpRequest, request)
_refresh_last_active_date(request)
summary = _get_project_summary(request.profile)
if "refresh" in request.GET:
return JsonResponse({str(k): v for k, v in summary.items()})
@ -974,7 +980,7 @@ def log(request: AuthenticatedHttpRequest, code: UUID) -> HttpResponse:
@login_required
def details(request: AuthenticatedHttpRequest, code: UUID) -> HttpResponse:
_refresh_last_active_date(request.profile)
_refresh_last_active_date(request)
check, rw = _get_check_for_user(request, code, preload_owner_profile=True)
if request.GET.get("urls") in ("uuid", "slug") and rw: