Skip to content
Snippets Groups Projects
Verified Commit c273f5b6 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Fix field disabling in Person form

parent 88bb3188
Branches 619-keyerror-when-editing-person-as-non-admin
No related tags found
1 merge request!915Resolve "KeyError when editing person as non-admin"
Pipeline #50429 passed
......@@ -15,6 +15,7 @@ Fixed
* Signup was forbidden even if it was enabled in settings
* Phone numbers were not properly linked and suboptimally formatted on person page
* Favicon upload failed with S3 storage.
* Some combinations of allowed self-edit fields on persons could cause errors
`2.6`_ - 2022-01-10
-------------------
......
......@@ -108,21 +108,16 @@ class PersonForm(ExtensibleForm):
request = kwargs.pop("request", None)
super().__init__(*args, **kwargs)
# Disable non-editable fields
allowed_person_fields = get_site_preferences()["account__editable_fields_person"]
if (
request
and self.instance
and not request.user.has_perm("core.change_person", self.instance)
):
# First, disable all fields
# Disable non-editable fields
allowed_person_fields = get_site_preferences()["account__editable_fields_person"]
for field in self.fields:
self.fields[field].disabled = True
# Then, activate allowed fields
for field in allowed_person_fields:
self.fields[field].disabled = False
if field not in allowed_person_fields:
self.fields[field].disabled = True
def clean(self) -> None:
user = get_user_model()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment