AccessRestrictionGroup

This commit is contained in:
Laura Klünder 2017-12-20 20:54:58 +01:00
parent 040669755f
commit 245c101eb0
6 changed files with 199 additions and 124 deletions

View file

@ -21,6 +21,7 @@ class AccessRestriction(TitledMixin, models.Model):
An access restriction
"""
open = models.BooleanField(default=False, verbose_name=_('open'))
groups = models.ManyToManyField('mapdata.AccessRestrictionGroup', verbose_name=_('Groups'), blank=True)
class Meta:
verbose_name = _('Access Restriction')
@ -38,6 +39,27 @@ class AccessRestriction(TitledMixin, models.Model):
return Q(pk__in=AccessPermission.get_for_request(request))
class AccessRestrictionGroup(TitledMixin, models.Model):
"""
An access restriction group
"""
class Meta:
verbose_name = _('Access Restriction Group')
verbose_name_plural = _('Access Restriction Groups')
default_related_name = 'accessrestrictiongroups'
@classmethod
def qs_for_request(cls, request):
return cls.objects.filter(cls.q_for_request(request))
@classmethod
def q_for_request(cls, request):
if request.user.is_authenticated and request.user.is_superuser:
return Q()
permissions = AccessPermission.get_for_request(request)
return Q(Q(accessrestrictions=None) | Q(accessrestrictions__pk__in=permissions))
def default_valid_until():
return timezone.now()+timedelta(seconds=20)