diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-10-02 16:39:42 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-02-05 10:51:52 +0100 |
commit | 443e6592b9a6ea77feeccc9a9cdd7d3e81bd45aa (patch) | |
tree | fdd51a899d97fc5526d5eb99af05ab45f6249c6d /ishtar_common/models_imports.py | |
parent | be35d0d9508839e9a0966bae94bf702fc9e32a67 (diff) | |
download | Ishtar-443e6592b9a6ea77feeccc9a9cdd7d3e81bd45aa.tar.bz2 Ishtar-443e6592b9a6ea77feeccc9a9cdd7d3e81bd45aa.zip |
🗃️ DB changes to manage user permissions
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r-- | ishtar_common/models_imports.py | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index ea2f0f549..af907d44d 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -74,7 +74,8 @@ from ishtar_common.utils import ( put_session_message, put_session_var, reverse_coordinates, - update_data + update_data, + OwnPerms ) from ishtar_common.data_importer import ( Importer, @@ -416,6 +417,7 @@ class ImporterGroup(models.Model): _("Description"), blank=True, default="" ) available = models.BooleanField(_("Available"), default=True) + users = models.ManyToManyField("IshtarUser", verbose_name=_("Users"), blank=True) class Meta: verbose_name = _("Importer - Group") @@ -1338,7 +1340,7 @@ IMPORT_GEOMETRY = { } -class BaseImport(models.Model): +class BaseImport(models.Model, OwnPerms): user = models.ForeignKey( "IshtarUser", blank=True, null=True, on_delete=models.SET_NULL ) @@ -1412,6 +1414,15 @@ class BaseImport(models.Model): q = q.filter(user=ishtar_user) return q + @classmethod + def get_query_owns(cls, ishtaruser): + return cls._construct_query_own( + "", + [ + {"importer_type__users__pk": ishtaruser.pk}, + ], + ) + @property def group_prefix(self): return "" @@ -1465,7 +1476,14 @@ class ImportGroup(BaseImport): class Meta: verbose_name = _("Import - Group") verbose_name_plural = _("Import - Groups") + permissions = ( + ("view_own_importgroup", "Can view own Import Group"), + ("add_own_importgroup", "Can add own Import Group"), + ("change_own_importgroup", "Can change own Import Group"), + ("delete_own_importgroup", "Can delete own Import Group"), + ) ADMIN_SECTION = _("Imports") + SLUG = "importgroup" def __str__(self): return f"{self.name} ({self.importer_type.name})" @@ -1848,7 +1866,14 @@ class Import(BaseImport): class Meta: verbose_name = _("Import - Import") verbose_name_plural = _("Import - Imports") + permissions = ( + ("view_own_import", "Can view own Import"), + ("add_own_import", "Can add own Import"), + ("change_own_import", "Can change own Import"), + ("delete_own_import", "Can delete own Import"), + ) ADMIN_SECTION = _("Imports") + SLUG = "import" def __str__(self): return "{} | {}".format(self.name or "-", self.importer_type) |