From 7b685ea830250f04dd6229d2c479a0e171af042a Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 17 Jan 2017 10:26:41 +0100 Subject: [PATCH 2/3] create unique index on AccessRight.* (#13887) It will garantee that get_or_create() calls in the BaseResource.import_json() function will always work. --- passerelle/base/migrations/0004_auto_20170117_0326.py | 18 ++++++++++++++++++ passerelle/base/models.py | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 passerelle/base/migrations/0004_auto_20170117_0326.py diff --git a/passerelle/base/migrations/0004_auto_20170117_0326.py b/passerelle/base/migrations/0004_auto_20170117_0326.py new file mode 100644 index 0000000..9c4d428 --- /dev/null +++ b/passerelle/base/migrations/0004_auto_20170117_0326.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('base', '0003_auto_20170116_1656'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='accessright', + unique_together=set([('codename', 'resource_type', 'resource_pk', 'apiuser')]), + ), + ] diff --git a/passerelle/base/models.py b/passerelle/base/models.py index 7131359..8066437 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -167,6 +167,9 @@ class AccessRight(models.Model): permissions = ( ('view_accessright', 'Can view access right'), ) + unique_together = ( + ('codename', 'resource_type', 'resource_pk', 'apiuser'), + ) def __unicode__(self): return '%s (on %s <%s>) (for %s)' % (self.codename, -- 2.1.4