diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-11-15 10:52:02 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:45:55 +0100 |
commit | 7a3da08eabf4767284b370e670e1953abb49973a (patch) | |
tree | bfa978b6b80b32bc2f6e4af1ea4dabbdfb8b9ebd | |
parent | 3556c98cd2fc9b064fa026733ee80fdd8fcbc993 (diff) | |
download | Ishtar-7a3da08eabf4767284b370e670e1953abb49973a.tar.bz2 Ishtar-7a3da08eabf4767284b370e670e1953abb49973a.zip |
🐛 fix permissions menu evaluation - fix forms
-rw-r--r-- | archaeological_finds/forms.py | 4 | ||||
-rw-r--r-- | archaeological_finds/forms_treatments.py | 4 | ||||
-rw-r--r-- | archaeological_finds/ishtar_menu.py | 50 | ||||
-rw-r--r-- | ishtar_common/forms_common.py | 4 | ||||
-rw-r--r-- | ishtar_common/menu_base.py | 6 |
5 files changed, 33 insertions, 35 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 23531aeb0..477e5fa7e 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -2171,7 +2171,7 @@ class FindFormMultiSelectionWarehouseModule(FindFormMultiSelection): ) -class MultipleFindFormSelection(forms.Form): +class MultipleFindFormSelection(CustomForm, forms.Form): # used for basket management # TODO: could probably use FindFormMultiSelection form_label = _("Find search") @@ -2212,7 +2212,7 @@ class MultipleFindFormSelectionWarehouseModule(MultipleFindFormSelection): ) -class FindMultipleFormSelection(forms.Form): +class FindMultipleFormSelection(CustomForm, forms.Form): form_label = _("Upstream finds") associated_models = {"finds": models.Find} associated_labels = {"finds": _("Finds")} diff --git a/archaeological_finds/forms_treatments.py b/archaeological_finds/forms_treatments.py index 4731e91e2..be1921568 100644 --- a/archaeological_finds/forms_treatments.py +++ b/archaeological_finds/forms_treatments.py @@ -72,7 +72,7 @@ class TreatmentSelect(DocumentItemSelect): models.TreatmentType.get_help() -class TreatmentFormSelection(forms.Form): +class TreatmentFormSelection(CustomForm, forms.Form): SEARCH_AND_SELECT = True form_label = _("Treatment search") associated_models = {'pk': models.Treatment} @@ -667,7 +667,7 @@ class TreatmentFileSelect(DocumentItemSelect): self.fields['type'].help_text = models.TreatmentFileType.get_help() -class TreatmentFileFormSelection(forms.Form): +class TreatmentFileFormSelection(CustomForm, forms.Form): SEARCH_AND_SELECT = True form_label = _("Treatment request search") associated_models = {'pk': models.TreatmentFile} diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index 717cb6379..70f0dcfc7 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -40,8 +40,8 @@ MENU_SECTIONS = [ _("Search"), model=models.Find, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), MenuItem( @@ -49,7 +49,7 @@ MENU_SECTIONS = [ _("Creation"), model=models.Find, access_controls=[ - "archeological_finds.add_find", + "archaeological_finds.add_find", ], ), MenuItem( @@ -57,8 +57,8 @@ MENU_SECTIONS = [ _("Modification"), model=models.Find, access_controls=[ - "archeological_finds.change_find", - "archeological_finds.change_own_find" + "archaeological_finds.change_find", + "archaeological_finds.change_own_find" ], ), MenuItem( @@ -66,8 +66,8 @@ MENU_SECTIONS = [ _("Deletion"), model=models.Find, access_controls=[ - "archeological_finds.change_find", - "archeological_finds.change_own_find" + "archaeological_finds.change_find", + "archaeological_finds.change_own_find" ], ), SectionItem( @@ -79,8 +79,8 @@ MENU_SECTIONS = [ _("Search"), model=models.FindBasket, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), MenuItem( @@ -88,8 +88,8 @@ MENU_SECTIONS = [ _("Creation"), model=models.FindBasket, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), MenuItem( @@ -97,8 +97,8 @@ MENU_SECTIONS = [ _("Modification"), model=models.FindBasket, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), MenuItem( @@ -106,8 +106,8 @@ MENU_SECTIONS = [ _("Manage items"), model=models.FindBasket, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), MenuItem( @@ -115,8 +115,8 @@ MENU_SECTIONS = [ _("Deletion"), model=models.FindBasket, access_controls=[ - "archeological_finds.view_find", - "archeological_finds.view_own_find" + "archaeological_finds.view_find", + "archaeological_finds.view_own_find" ], ), ], @@ -142,8 +142,8 @@ MENU_SECTIONS = [ _("Search"), model=models.TreatmentFile, access_controls=[ - "archeological_finds.view_treatmentfile", - "archeological_finds.view_own_treatmentfile" + "archaeological_finds.view_treatmentfile", + "archaeological_finds.view_own_treatmentfile" ], ), MenuItem( @@ -151,8 +151,8 @@ MENU_SECTIONS = [ _("Creation"), model=models.TreatmentFile, access_controls=[ - "archeological_finds.change_treatmentfile", - "archeological_finds.change_own_treatmentfile", + "archaeological_finds.change_treatmentfile", + "archaeological_finds.change_own_treatmentfile", ], ), MenuItem( @@ -160,8 +160,8 @@ MENU_SECTIONS = [ _("Modification"), model=models.TreatmentFile, access_controls=[ - "archeological_finds.change_treatmentfile", - "archeological_finds.change_own_treatmentfile", + "archaeological_finds.change_treatmentfile", + "archaeological_finds.change_own_treatmentfile", ], ), MenuItem( @@ -169,8 +169,8 @@ MENU_SECTIONS = [ _("Deletion"), model=models.TreatmentFile, access_controls=[ - "archeological_finds.change_treatmentfile", - "archeological_finds.change_own_treatmentfile", + "archaeological_finds.change_treatmentfile", + "archaeological_finds.change_own_treatmentfile", ], ), SectionItem( diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index cb7eb761a..1a04a38e9 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -1264,7 +1264,7 @@ class IshtarUserSelect(TableSelect): self.fields["person_types"].choices = models.PersonType.get_types() -class AccountFormSelection(forms.Form): +class AccountFormSelection(CustomForm, forms.Form): SEARCH_AND_SELECT = True form_label = _("Account search") associated_models = {"pk": models.IshtarUser} @@ -2915,7 +2915,7 @@ class AuthorForm(ManageOldType, NewItemForm): return new_item -class AuthorFormSelection(forms.Form): +class AuthorFormSelection(CustomForm, forms.Form): form_label = _("Author selection") NO_CUSTOM_FORM = True base_model = "author" diff --git a/ishtar_common/menu_base.py b/ishtar_common/menu_base.py index feb05c6db..809dd1c2d 100644 --- a/ishtar_common/menu_base.py +++ b/ishtar_common/menu_base.py @@ -108,10 +108,9 @@ class MenuItem: return True if not hasattr(user, "ishtaruser"): return False - ishtaruser = user.ishtaruser for access_control in self.access_controls: # check by profile - if ishtaruser.has_permission(access_control): + if user.has_perm(access_control): return True return False @@ -122,9 +121,8 @@ class MenuItem: return True if not hasattr(user, "ishtaruser"): return False - ishtaruser = user.ishtaruser for access_control in self.access_controls: - if ishtaruser.has_permission( + if user.has_perm( access_control, obj=obj ): return True |