summaryrefslogtreecommitdiff
path: root/ishtar_common/forms_common.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-10-16 17:57:13 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-19 14:43:48 +0100
commitc93dd3812c53d21ab8517dc7af72e1d4b70a1b04 (patch)
tree2153d8fd121f7ecd08a31e4867d58a2eb3c9aab7 /ishtar_common/forms_common.py
parentb8eef9b6aaed7ee097f8ea86174067f9ca42abd8 (diff)
downloadIshtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.tar.bz2
Ishtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.zip
♻ permissions refactoring: refactor has_permission methods
Diffstat (limited to 'ishtar_common/forms_common.py')
-rw-r--r--ishtar_common/forms_common.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index b1e4e7ef4..22e23f3ca 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -257,9 +257,13 @@ class BaseImportForm(IshtarForm, forms.ModelForm):
self._post_init()
def _filter_importer_type_query(self, q, user):
- if user.is_superuser or user.ishtaruser.has_right("add_import"):
+ ishtaruser = getattr(user, "ishtaruser", None)
+ if not ishtaruser:
+ self.fields["importer_type"].choices = [("", "--")]
+ return
+ if user.is_superuser or ishtaruser.has_permission("ishtar_common.add_import"):
return q
- if not user.ishtaruser.has_right("add_own_import"):
+ if not user.ishtaruser.has_permission("ishtar_common.add_own_import"):
self.fields["importer_type"].choices = [("", "--")]
return
q = q.filter(users__pk=user.ishtaruser.pk)
@@ -555,10 +559,12 @@ class TargetKeyForm(forms.ModelForm):
self.associated_import = None
if instance and instance.pk:
model = instance.target.associated_model
+ ishtaruser = getattr(self.user, "ishtaruser", None)
+ meta = model._meta
if (
model
- and self.user.has_perm(
- "{}.change_{}".format(model._meta.app_label, model._meta.model_name)
+ and ishtaruser.has_permission(
+ f"{meta.app_label}.change_{meta.model_name}"
)
and hasattr(model, "admin_url")
):