new_serialize for access restrictions

This commit is contained in:
Laura Klünder 2024-12-04 11:45:03 +01:00
parent b8cc720c04
commit 38c6e6a863
2 changed files with 5 additions and 7 deletions

View file

@ -17,6 +17,8 @@ from c3nav.mapdata.models.base import SerializableMixin, TitledMixin
class AccessRestriction(TitledMixin, models.Model): class AccessRestriction(TitledMixin, models.Model):
new_serialize = True
""" """
An access restriction An access restriction
""" """
@ -28,11 +30,6 @@ class AccessRestriction(TitledMixin, models.Model):
verbose_name_plural = _('Access Restrictions') verbose_name_plural = _('Access Restrictions')
default_related_name = 'accessrestrictions' default_related_name = 'accessrestrictions'
def _serialize(self, **kwargs):
result = super()._serialize(**kwargs)
result['groups'] = tuple(group.pk for group in self.groups.all())
return result
@classmethod @classmethod
def qs_for_request(cls, request): def qs_for_request(cls, request):
return cls.objects.filter(cls.q_for_request(request)) return cls.objects.filter(cls.q_for_request(request))
@ -62,6 +59,8 @@ class AccessRestriction(TitledMixin, models.Model):
class AccessRestrictionGroup(TitledMixin, models.Model): class AccessRestrictionGroup(TitledMixin, models.Model):
new_serialize = True
""" """
An access restriction group An access restriction group
""" """
@ -188,7 +187,6 @@ class AccessPermissionToken(models.Model):
class AccessPermissionSSOGrant(models.Model): class AccessPermissionSSOGrant(models.Model):
provider = models.CharField(max_length=32, verbose_name=_('SSO Backend')) provider = models.CharField(max_length=32, verbose_name=_('SSO Backend'))
group = models.CharField(max_length=64, verbose_name=_('SSO Group')) group = models.CharField(max_length=64, verbose_name=_('SSO Group'))
access_restriction = models.ForeignKey(AccessRestriction, on_delete=models.CASCADE, null=True, blank=True) access_restriction = models.ForeignKey(AccessRestriction, on_delete=models.CASCADE, null=True, blank=True)

View file

@ -390,7 +390,7 @@ class AccessRestrictionSchema(TitledSchema, DjangoModelSchema):
If they do, you can only see them if you have a permission to see objects with this access retriction. If they do, you can only see them if you have a permission to see objects with this access retriction.
""" """
open: bool public: bool
groups: list[PositiveInt] = APIField( groups: list[PositiveInt] = APIField(
title="access restriction groups" title="access restriction groups"
) )