This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
2014-03-10 09:29:12 +01:00
|
|
|
import datetime
|
|
|
|
|
|
|
|
from django.db.models import query
|
|
|
|
from django.utils.timezone import now
|
|
|
|
|
|
|
|
from model_utils import managers
|
|
|
|
|
|
|
|
from . import app_settings
|
|
|
|
|
|
|
|
|
|
|
|
class CasTicketQuerySet(query.QuerySet):
|
|
|
|
def clean_expired(self):
|
|
|
|
'''Remove expired tickets'''
|
|
|
|
self.filter(expire__gte=now()).delete()
|
|
|
|
|
|
|
|
def cleanup(self):
|
|
|
|
'''Delete old tickets'''
|
|
|
|
delta = datetime.timedelta(seconds=app_settings.TICKET_EXPIRATION)
|
|
|
|
qs = self.filter(creation__lt=now()-delta)
|
|
|
|
qs.delete()
|
|
|
|
|
2014-10-28 18:40:52 +01:00
|
|
|
|
|
|
|
class CasServiceQuerySet(query.QuerySet):
|
|
|
|
def for_domain(self, domain):
|
|
|
|
q = query.Q(domain=domain)
|
|
|
|
parts = domain.split('.')
|
|
|
|
for i in range(1, len(parts)):
|
|
|
|
q |= query.Q(domain='.%s' % '.'.join(parts[i:]))
|
|
|
|
return self.filter(q).order_by('-domain')
|
|
|
|
|
|
|
|
CasServiceManager = managers.PassThroughManager.for_queryset_class(CasServiceQuerySet)
|
|
|
|
|
2014-03-10 09:29:12 +01:00
|
|
|
CasTicketManager = managers.PassThroughManager.for_queryset_class(CasTicketQuerySet)
|