From fe0ba320c0aa956f943ecd41f392738b87e95ddc Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 2 Sep 2019 10:12:41 +0200 Subject: [PATCH 4/5] a2_rbac: validate uniqueness of Role.slug (#35391) --- src/authentic2/a2_rbac/models.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/authentic2/a2_rbac/models.py b/src/authentic2/a2_rbac/models.py index 42cc14d2..c3628444 100644 --- a/src/authentic2/a2_rbac/models.py +++ b/src/authentic2/a2_rbac/models.py @@ -233,6 +233,13 @@ class Role(RoleAbstractBase): if qs.exists(): errors.setdefault('name', []).append(_('Name already used')) + if 'slug' not in exclude: + qs = self.__class__.objects.filter(slug=self.slug, ou=self.ou) + if self.pk: + qs = qs.exclude(pk=self.pk) + if qs.exists(): + errors.setdefault('slug', []).append(_('Slug already used')) + if errors: raise ValidationError(errors) -- 2.23.0.rc1