summaryrefslogtreecommitdiff
path: root/archaeological_operations
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 /archaeological_operations
parentb8eef9b6aaed7ee097f8ea86174067f9ca42abd8 (diff)
downloadIshtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.tar.bz2
Ishtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.zip
♻ permissions refactoring: refactor has_permission methods
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/ishtar_menu.py60
-rw-r--r--archaeological_operations/models.py61
-rw-r--r--archaeological_operations/urls.py161
-rw-r--r--archaeological_operations/views.py72
4 files changed, 220 insertions, 134 deletions
diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py
index b58fb5078..31d7ade34 100644
--- a/archaeological_operations/ishtar_menu.py
+++ b/archaeological_operations/ishtar_menu.py
@@ -24,7 +24,7 @@ from ishtar_common.menu_base import SectionItem, MenuItem
from ishtar_common.models import IshtarSiteProfile
from archaeological_operations import models
-# be careful: each access_controls must be relevant with check_rights in urls
+# be careful: each access_controls must be relevant with check_permissions in urls
MENU_SECTIONS = [
@@ -39,31 +39,43 @@ MENU_SECTIONS = [
"operation_search",
_("Search"),
model=models.Operation,
- access_controls=["view_operation", "view_own_operation"],
+ access_controls=[
+ "archaeological_operations.view_operation",
+ "archaeological_operations.view_own_operation"
+ ],
),
MenuItem(
"operation_creation",
_("Creation"),
model=models.Operation,
- access_controls=["add_operation", "add_own_operation"],
+ access_controls=[
+ "archaeological_operations.add_operation",
+ "archaeological_operations.add_own_operation"
+ ],
),
MenuItem(
"operation_modification",
_("Modification"),
model=models.Operation,
- access_controls=["change_operation", "change_own_operation"],
+ access_controls=[
+ "archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"
+ ],
),
MenuItem(
"operation_closing",
_("Closing"),
model=models.Operation,
- access_controls=["close_operation"],
+ access_controls=["archaeological_operations.close_operation"],
),
MenuItem(
"operation_deletion",
_("Deletion"),
model=models.Operation,
- access_controls=["change_operation", "change_own_operation"],
+ access_controls=[
+ "archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"
+ ],
),
SectionItem(
"admin_act_operations",
@@ -74,25 +86,33 @@ MENU_SECTIONS = [
"operation_administrativeactop_search",
_("Search"),
model=models.AdministrativeAct,
- access_controls=["change_administrativeact"],
+ access_controls=[
+ "archaeological_operations.change_administrativeact"
+ ],
),
MenuItem(
"operation_administrativeactop",
_("Creation"),
model=models.AdministrativeAct,
- access_controls=["change_administrativeact"],
+ access_controls=[
+ "archaeological_operations.change_administrativeact"
+ ],
),
MenuItem(
"operation_administrativeactop_modification",
_("Modification"),
model=models.AdministrativeAct,
- access_controls=["change_administrativeact"],
+ access_controls=[
+ "archaeological_operations.change_administrativeact"
+ ],
),
MenuItem(
"operation_administrativeactop_deletion",
_("Deletion"),
model=models.AdministrativeAct,
- access_controls=["change_administrativeact"],
+ access_controls=[
+ "archaeological_operations.change_administrativeact"
+ ],
),
],
),
@@ -112,8 +132,8 @@ MENU_SECTIONS = [
pgettext_lazy("admin act register", "Register"),
model=models.AdministrativeAct,
access_controls=[
- "view_administrativeact",
- "view_own_administrativeact",
+ "archaeological_operations.view_administrativeact",
+ "archaeological_operations.view_own_administrativeact",
],
),
],
@@ -132,8 +152,8 @@ MENU_SECTIONS = [
_("Search"),
model=models.ArchaeologicalSite,
access_controls=[
- "view_archaeologicalsite",
- "view_own_archaeologicalsite",
+ "archaeological_operations.view_archaeologicalsite",
+ "archaeological_operations.view_own_archaeologicalsite",
],
),
MenuItem(
@@ -141,8 +161,8 @@ MENU_SECTIONS = [
_("Creation"),
model=models.ArchaeologicalSite,
access_controls=[
- "add_archaeologicalsite",
- "add_own_archaeologicalsite",
+ "archaeological_operations.add_archaeologicalsite",
+ "archaeological_operations.add_own_archaeologicalsite",
],
),
MenuItem(
@@ -150,15 +170,17 @@ MENU_SECTIONS = [
_("Modification"),
model=models.ArchaeologicalSite,
access_controls=[
- "change_archaeologicalsite",
- "change_own_archaeologicalsite",
+ "archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite",
],
),
MenuItem(
"site_deletion",
_("Deletion"),
model=models.ArchaeologicalSite,
- access_controls=["change_archaeologicalsite"],
+ access_controls=[
+ "archaeological_operations.change_archaeologicalsite"
+ ],
),
],
),
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 9119a5c72..a074adc9a 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -31,7 +31,7 @@ from django.contrib.gis.db.models.functions import Centroid
from django.contrib.postgres.indexes import GinIndex
from django.contrib.sites.models import Site
from django.db import transaction, OperationalError, IntegrityError
-from django.db.models import Q, Count, Sum, Max, Avg
+from django.db.models import Q, Max
from django.db.models.signals import post_save, m2m_changed, post_delete
from django.forms import ValidationError
from django.urls import reverse
@@ -579,14 +579,20 @@ class ArchaeologicalSite(
icon_class="fa fa-lock",
text=_("Lock/Unlock"),
target="many",
- rights=["change_archaeologicalsite", "change_own_archaeologicalsite"],
+ rights=[
+ "archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"
+ ],
)
QA_EDIT = QuickAction(
url="site-qa-bulk-update",
icon_class="fa fa-pencil",
text=_("Bulk update"),
target="many",
- rights=["change_archaeologicalsite", "change_own_archaeologicalsite"],
+ rights=[
+ "archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"
+ ],
)
QUICK_ACTIONS = [
QA_EDIT,
@@ -596,7 +602,7 @@ class ArchaeologicalSite(
icon_class="fa fa-plus",
text=_("Create associated operation"),
target="many",
- rights=["change_operation"],
+ rights=["archaeological_operations.add_operation"],
is_popup=False
),
QuickAction(
@@ -604,7 +610,10 @@ class ArchaeologicalSite(
icon_class="fa fa-clone",
text=_("Duplicate"),
target="one",
- rights=["change_archaeologicalsite", "change_own_archaeologicalsite"],
+ rights=[
+ "archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"
+ ],
),
]
@@ -780,8 +789,12 @@ class ArchaeologicalSite(
actions = super(ArchaeologicalSite, self).get_extra_actions(request)
is_locked = self.is_locked(request.user)
profile = get_current_profile()
- can_edit_site = self.can_do(request, "change_archaeologicalsite")
- can_add_geo = profile.mapping and self.can_do(request, "add_geovectordata")
+ can_edit_site = self.can_do(
+ request, "archaeological_operations.change_archaeologicalsite"
+ )
+ can_add_geo = profile.mapping and self.can_do(
+ request, "ishtar_common.add_geovectordata"
+ )
if can_add_geo:
actions.append(self.get_add_geo_action())
@@ -797,7 +810,9 @@ class ArchaeologicalSite(
),
]
- can_create_operation = self.can_do(request, "change_operation")
+ can_create_operation = self.can_do(
+ request, "archaeological_operations.change_operation"
+ )
if can_create_operation and not self.operations.count():
actions.append(
(
@@ -1439,14 +1454,20 @@ class Operation(
icon_class="fa fa-pencil",
text=_("Bulk update"),
target="many",
- rights=["change_operation", "change_own_operation"],
+ rights=[
+ "archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"
+ ],
)
QA_LOCK = QuickAction(
url="operation-qa-lock",
icon_class="fa fa-lock",
text=_("Lock/Unlock"),
target="many",
- rights=["change_operation", "change_own_operation"],
+ rights=[
+ "archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"
+ ],
)
QUICK_ACTIONS = [
QA_EDIT,
@@ -1456,7 +1477,10 @@ class Operation(
icon_class="fa fa-clone",
text=_("Duplicate"),
target="one",
- rights=["change_operation", "change_own_operation"],
+ rights=[
+ "archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"
+ ],
),
]
@@ -2124,7 +2148,9 @@ class Operation(
actions = super(Operation, self).get_extra_actions(request)
is_locked = self.is_locked(request.user)
- can_edit_operation = self.can_do(request, "change_operation")
+ can_edit_operation = self.can_do(
+ request, "archaeological_operations.change_operation"
+ )
if can_edit_operation and not is_locked:
actions = [
(
@@ -2138,10 +2164,14 @@ class Operation(
] + actions
profile = get_current_profile()
- can_add_geo = profile.mapping and self.can_do(request, "add_geovectordata")
+ can_add_geo = profile.mapping and self.can_do(
+ request, "ishtar_common.add_geovectordata"
+ )
if can_add_geo:
actions.append(self.get_add_geo_action())
- can_add_cr = self.can_do(request, "add_contextrecord")
+ can_add_cr = self.can_do(
+ request, "archaeological_context_records.add_contextrecord"
+ )
if can_add_cr and not is_locked:
start = actions
end = []
@@ -2158,7 +2188,8 @@ class Operation(
True,
),
] + end
- if profile.files and self.can_do(request, "add_administrativeact"):
+ if profile.files and self.can_do(
+ request, "archaeological_operations.add_administrativeact"):
actions += [
(
reverse("operation-add-adminact", args=[self.pk]),
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 7f5080c39..ba96c64b2 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -21,7 +21,7 @@ from django.conf.urls import url
from django.urls import path, register_converter
from ishtar_common import urls_converters
-from ishtar_common.utils import check_rights
+from ishtar_common.utils import check_permissions
from archaeological_operations import views
from archaeological_operations import views_api
from archaeological_operations import models
@@ -29,27 +29,27 @@ from archaeological_operations import models
register_converter(urls_converters.UnderscoreSlug, "uslug")
-# be carreful: each check_rights must be relevant with ishtar_menu
+# be carreful: each check_permissions must be relevant with ishtar_menu
# forms
urlpatterns = [
url(
r"operation_administrativeactop_search/(?P<step>.+)?$",
- check_rights(["change_administrativeact"])(
+ check_permissions(["archaeological_operations.change_administrativeact"])(
views.operation_administrativeactop_search_wizard
),
name="operation_administrativeactop_search",
),
url(
r"operation_administrativeactop/(?P<step>.+)?$",
- check_rights(["change_administrativeact"])(
+ check_permissions(["archaeological_operations.change_administrativeact"])(
views.operation_administrativeactop_wizard
),
name="operation_administrativeactop",
),
url(
r"operation_administrativeactop_modification/(?P<step>.+)?$",
- check_rights(["change_administrativeact"])(
+ check_permissions(["archaeological_operations.change_administrativeact"])(
views.operation_administrativeactop_modification_wizard
),
name="operation_administrativeactop_modification",
@@ -61,7 +61,7 @@ urlpatterns = [
),
url(
r"operation_administrativeactop_deletion/(?P<step>.+)?$",
- check_rights(["change_administrativeact"])(
+ check_permissions(["archaeological_operations.change_administrativeact"])(
views.operation_administrativeactop_deletion_wizard
),
name="operation_administrativeactop_deletion",
@@ -73,29 +73,34 @@ urlpatterns = [
),
url(
r"operation_search/(?P<step>.+)?$",
- check_rights(["view_operation", "view_own_operation"])(
- views.operation_search_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.view_operation",
+ "archaeological_operations.view_own_operation"]
+ )(views.operation_search_wizard),
name="operation_search",
),
url(
r"^operation-add-adminact/(?P<pk>[0-9-]+)/$",
- check_rights(["add_administrativeact"])(views.operation_adminact_add),
+ check_permissions(
+ ["archaeological_operations.add_administrativeact"]
+ )(views.operation_adminact_add),
name="operation-add-adminact",
),
url(
r"operation_creation/(?P<step>.+)?$",
- check_rights(["add_operation", "add_own_operation"])(
- views.operation_creation_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.add_operation",
+ "archaeological_operations.add_own_operation"]
+ )(views.operation_creation_wizard),
name="operation_creation",
),
url(r"operation_add/(?P<file_id>\d+)$", views.operation_add, name="operation_add"),
url(
r"operation_modification/(?P<step>.+)?$",
- check_rights(["change_operation", "change_own_operation"])(
- views.operation_modification_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.operation_modification_wizard),
name="operation_modification",
),
url(
@@ -105,14 +110,17 @@ urlpatterns = [
),
url(
r"operation_closing/(?P<step>.+)?$",
- check_rights(["change_operation"])(views.operation_closing_wizard),
+ check_permissions(
+ ["archaeological_operations.change_operation"]
+ )(views.operation_closing_wizard),
name="operation_closing",
),
url(
r"operation_deletion/(?P<step>.+)?$",
- check_rights(["change_operation", "change_own_operation"])(
- views.operation_deletion_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.operation_deletion_wizard),
name="operation_deletion",
),
url(
@@ -122,9 +130,10 @@ urlpatterns = [
),
url(
r"administrativact_register/(?P<step>.+)?$",
- check_rights(["view_administrativeact", "view_own_administrativeact"])(
- views.administrativact_register_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.view_administrativeact",
+ "archaeological_operations.view_own_administrativeact"]
+ )(views.administrativact_register_wizard),
name="administrativact_register",
),
url(
@@ -267,29 +276,34 @@ urlpatterns = [
),
url(
r"site_search/(?P<step>.+)?$",
- check_rights(["view_archaeologicalsite", "view_own_archaeologicalsite"])(
- views.site_search_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.view_archaeologicalsite",
+ "archaeological_operations.view_own_archaeologicalsite"]
+ )(views.site_search_wizard),
name="site_search",
),
url(
r"site_creation/(?P<step>.+)?$",
- check_rights(["add_archaeologicalsite", "add_own_archaeologicalsite"])(
- views.site_creation_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.add_archaeologicalsite",
+ "archaeological_operations.add_own_archaeologicalsite"]
+ )(views.site_creation_wizard),
name="site_creation",
),
url(
r"site_modification/(?P<step>.+)?$",
- check_rights(["change_archaeologicalsite", "change_own_archaeologicalsite"])(
- views.site_modification_wizard
- ),
+ check_permissions(
+ ["archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"]
+ )(views.site_modification_wizard),
name="site_modification",
),
url(r"site_modify/(?P<pk>.+)/$", views.site_modify, name="site_modify"),
url(
r"site_deletion/(?P<step>.+)?$",
- check_rights(["change_archaeologicalsite"])(views.site_deletion_wizard),
+ check_permissions(
+ ["archaeological_operations.change_archaeologicalsite"]
+ )(views.site_deletion_wizard),
name="site_deletion",
),
url(r"site_delete/(?P<pk>.+)/$", views.site_delete, name="delete-site"),
@@ -310,59 +324,67 @@ urlpatterns = [
),
url(
r"^operation-relations-modify/(?P<pk>.+)/$",
- check_rights(["change_operation", "change_own_operation"])(
- views.operation_modify_relations
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.operation_modify_relations),
name="operation-relation-modify",
),
path(
"operation-site-relations-modify/<int:pk>/",
- check_rights(["change_operation", "change_own_operation"])(
- views.operation_site_modify_relations
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.operation_site_modify_relations),
name="operation-site-relations-modify",
),
path(
"operation-site-relations-modify/<int:pk>/<uslug:window_id>/",
- check_rights(["change_operation", "change_own_operation"])(
- views.operation_site_modify_relations
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.operation_site_modify_relations),
name="operation-site-relations-modify",
),
path(
"site-operation-relations-modify/<int:pk>/",
- check_rights(["change_operation", "change_own_operation"])(
- views.site_operation_modify_relations
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.site_operation_modify_relations),
name="site-operation-relations-modify",
),
path(
"site-operation-relations-modify/<int:pk>/<uslug:window_id>/",
- check_rights(["change_operation", "change_own_operation"])(
- views.site_operation_modify_relations
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.site_operation_modify_relations),
name="site-operation-relations-modify",
),
url(
r"^operation-qa-bulk-update/(?P<pks>[0-9-]+)?/$",
- check_rights(["change_operation", "change_own_operation"])(
- views.QAOperationForm.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.QAOperationForm.as_view()),
name="operation-qa-bulk-update",
),
url(
r"^operation-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$",
- check_rights(["change_operation", "change_own_operation"])(
- views.QAOperationForm.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.QAOperationForm.as_view()),
name="operation-qa-bulk-update-confirm",
kwargs={"confirm": True},
),
url(
r"^operation-qa-duplicate/(?P<pks>[0-9-]+)?/$",
- check_rights(["change_operation", "change_own_operation"])(
- views.QAOperationdDuplicateFormView.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_operation",
+ "archaeological_operations.change_own_operation"]
+ )(views.QAOperationdDuplicateFormView.as_view()),
name="operation-qa-duplicate",
),
url(
@@ -373,9 +395,10 @@ urlpatterns = [
),
url(
r"^site-qa-duplicate/(?P<pks>[0-9-]+)?/$",
- check_rights(["change_archaeologicalsite", "change_own_archaeologicalsite"])(
- views.QAArchaeologicalSiteDuplicateFormView.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"]
+ )(views.QAArchaeologicalSiteDuplicateFormView.as_view()),
name="site-qa-duplicate",
),
url(
@@ -386,29 +409,31 @@ urlpatterns = [
),
url(
r"^site-qa-bulk-update/(?P<pks>[0-9-]+)?/$",
- check_rights(["change_archaeologicalsite", "change_own_archaeologicalsite"])(
- views.QAArchaeologicalSiteForm.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"]
+ )(views.QAArchaeologicalSiteForm.as_view()),
name="site-qa-bulk-update",
),
url(
r"^site-qa-bulk-update/(?P<pks>[0-9-]+)?/confirm/$",
- check_rights(["change_archaeologicalsite", "change_own_archaeologicalsite"])(
- views.QAArchaeologicalSiteForm.as_view()
- ),
+ check_permissions(
+ ["archaeological_operations.change_archaeologicalsite",
+ "archaeological_operations.change_own_archaeologicalsite"]
+ )(views.QAArchaeologicalSiteForm.as_view()),
name="site-qa-bulk-update-confirm",
kwargs={"confirm": True},
),
url(
r"^site-add-operation/(?P<pks>[0-9-]+)?/$",
- check_rights(["change_operation"])(
+ check_permissions(["archaeological_operations.change_operation"])(
views.site_add_operation
),
name="site-add-operation",
),
url(
r"^site-add-top-operation/(?P<pks>\d+)?/$",
- check_rights(["change_operation"])(
+ check_permissions(["archaeological_operations.change_operation"])(
views.site_add_top_operation
),
name="site-add-top-operation",
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 20193e197..7b6a56597 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -23,14 +23,14 @@ from jinja2 import TemplateSyntaxError
from django.conf import settings
from django.core.exceptions import PermissionDenied
from django.db.models import Q
-from django.forms.utils import ErrorDict, ErrorList
+from django.forms.utils import ErrorList
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render, redirect
from django.urls import reverse
from django.views.generic import RedirectView
from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy
from archaeological_operations.utils import parse_parcels
-from django.forms import formset_factory, ValidationError
+from django.forms import ValidationError
from archaeological_operations import models
from archaeological_operations import forms
@@ -43,7 +43,7 @@ from ishtar_common.models import (
DocumentTemplate,
)
from archaeological_context_records.models import ContextRecord
-from ishtar_common.utils import put_session_message, check_rights_condition
+from ishtar_common.utils import check_permissions_condition
from ishtar_common.views import (
gen_generate_doc,
QAItemEditForm,
@@ -58,14 +58,12 @@ from ishtar_common.wizards import SearchWizard
def autocomplete_patriarche(request):
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
if (
- not request.user.has_perm("ishtar_common.view_operation", models.Operation)
- and not request.user.has_perm(
- "ishtar_common.view_own_operation", models.Operation
- )
- and not request.user.ishtaruser.has_right(
- "operation_search", session=request.session
- )
+ not ishtaruser.has_permission("archaeological_operations.view_operation")
+ and not ishtaruser.has_permission("archaeological_operations.view_own_operation")
):
return HttpResponse(content_type="text/plain")
if not request.GET.get("term"):
@@ -88,11 +86,13 @@ def autocomplete_patriarche(request):
def autocomplete_archaeologicalsite(request):
- if not request.user.has_perm(
- "archaeological_operations.view_archaeologicalsite", models.ArchaeologicalSite
- ) and not request.user.has_perm(
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission(
+ "archaeological_operations.view_archaeologicalsite"
+ ) and not ishtaruser.has_permission(
"archaeological_operations.view_own_archaeologicalsite",
- models.ArchaeologicalSite,
):
return HttpResponse(content_type="text/plain")
if not request.GET.get("term"):
@@ -121,14 +121,14 @@ new_archaeologicalsite = new_qa_item(
def autocomplete_operation(request):
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
# person_types = request.user.ishtaruser.person.person_type
if (
- not request.user.has_perm("ishtar_common.view_operation", models.Operation)
- and not request.user.has_perm(
- "ishtar_common.view_own_operation", models.Operation
- )
- and not request.user.ishtaruser.has_right(
- "operation_search", session=request.session
+ not ishtaruser.has_permission("archaeological_operations.view_operation")
+ and not ishtaruser.has_permission(
+ "archaeological_operations.view_own_operation"
)
):
return HttpResponse(content_type="text/plain")
@@ -161,10 +161,13 @@ def autocomplete_operation(request):
def get_available_operation_code(request, year=None):
- if not request.user.has_perm(
- "ishtar_common.view_operation", models.Operation
- ) and not request.user.has_perm(
- "ishtar_common.view_own_operation", models.Operation
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission(
+ "archaeological_operations.view_operation"
+ ) and not ishtaruser.has_permission(
+ "archaeological_operations.view_own_operation"
):
return HttpResponse(content_type="text/plain")
data = json.dumps({"id": models.Operation.get_available_operation_code(year)})
@@ -211,9 +214,8 @@ wizard_steps = [
def get_check_files_for_operation(other_check=None):
def func(self):
- if not get_current_profile().files or not check_rights_condition(["view_file"])(
- self
- ):
+ if not get_current_profile().files or \
+ not check_permissions_condition(["archaeological_files.view_file"])(self):
return False
if not other_check:
return True
@@ -975,7 +977,10 @@ def administrativeactfile_document(
search_form = AdministrativeActTreatmentFileFormSelection
document_type = "TF"
- if not request.user.has_perm("view_administrativeact", models.AdministrativeAct):
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission("archaeological_operations.view_administrativeact"):
return HttpResponse(content_type="text/plain")
dct = {}
DocumentGenerationAdminActForm = forms.DocumentGenerationAdminActForm
@@ -1032,10 +1037,13 @@ def administrativeactfile_document(
def autocomplete_administrativeact(request):
- if not request.user.has_perm(
- "archaeological_operations.view_administrativeact", models.AdministrativeAct
- ) and not request.user.has_perm(
- "archaeological_operations.view_own_administrativeact", models.AdministrativeAct
+ ishtaruser = getattr(request.user, "ishtaruser", None)
+ if not ishtaruser:
+ return HttpResponse(content_type="text/plain")
+ if not ishtaruser.has_permission(
+ "archaeological_operations.view_administrativeact"
+ ) and not ishtaruser.has_permission(
+ "archaeological_operations.view_own_administrativeact"
):
return HttpResponse(content_type="text/plain")
if not request.GET.get("term"):