summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
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
commit443e6592b9a6ea77feeccc9a9cdd7d3e81bd45aa (patch)
treefdd51a899d97fc5526d5eb99af05ab45f6249c6d /ishtar_common/models_imports.py
parentbe35d0d9508839e9a0966bae94bf702fc9e32a67 (diff)
downloadIshtar-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.py29
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)