diff options
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 |
commit | c93dd3812c53d21ab8517dc7af72e1d4b70a1b04 (patch) | |
tree | 2153d8fd121f7ecd08a31e4867d58a2eb3c9aab7 /archaeological_operations | |
parent | b8eef9b6aaed7ee097f8ea86174067f9ca42abd8 (diff) | |
download | Ishtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.tar.bz2 Ishtar-c93dd3812c53d21ab8517dc7af72e1d4b70a1b04.zip |
♻ permissions refactoring: refactor has_permission methods
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/ishtar_menu.py | 60 | ||||
-rw-r--r-- | archaeological_operations/models.py | 61 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 161 | ||||
-rw-r--r-- | archaeological_operations/views.py | 72 |
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"): |