Attempting to resolve unfold form inconsistencies.
This commit is contained in:
27
app/apps/access/tasks.py
Normal file
27
app/apps/access/tasks.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from celery import shared_task
|
||||
from django.db import transaction
|
||||
from django.utils import timezone
|
||||
from .models import AccessRequest
|
||||
from .permissions import sync_server_view_perm
|
||||
|
||||
|
||||
@shared_task
|
||||
def expire_access_requests() -> int:
|
||||
now = timezone.now()
|
||||
expired_qs = AccessRequest.objects.select_related("server", "requester").filter(
|
||||
status=AccessRequest.Status.APPROVED,
|
||||
expires_at__isnull=False,
|
||||
expires_at__lte=now,
|
||||
)
|
||||
count = 0
|
||||
for access_request in expired_qs:
|
||||
with transaction.atomic():
|
||||
access_request.status = AccessRequest.Status.EXPIRED
|
||||
access_request.decided_at = now
|
||||
access_request.decided_by = None
|
||||
access_request.save(update_fields=["status", "decided_at", "decided_by"])
|
||||
sync_server_view_perm(access_request)
|
||||
count += 1
|
||||
return count
|
||||
Reference in New Issue
Block a user