mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 10:30:03 -03:30
Allow system auditor to set their own password
This commit is contained in:
parent
18fa0d5057
commit
d308946360
@ -463,8 +463,10 @@ class UserAccess(BaseAccess):
|
||||
|
||||
def can_change(self, obj, data):
|
||||
if data is not None and ('is_superuser' in data or 'is_system_auditor' in data):
|
||||
if (to_python_boolean(data.get('is_superuser', 'false'), allow_none=True) or
|
||||
to_python_boolean(data.get('is_system_auditor', 'false'), allow_none=True)) and not self.user.is_superuser:
|
||||
if to_python_boolean(data.get('is_superuser', 'false'), allow_none=True) and \
|
||||
not self.user.is_superuser:
|
||||
return False
|
||||
if to_python_boolean(data.get('is_system_auditor', 'false'), allow_none=True) and not (self.user.is_superuser or self.user == obj):
|
||||
return False
|
||||
# A user can be changed if they are themselves, or by org admins or
|
||||
# superusers. Change permission implies changing only certain fields
|
||||
|
||||
@ -44,6 +44,12 @@ def test_system_auditor_is_system_auditor(system_auditor):
|
||||
assert system_auditor.is_system_auditor
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_system_auditor_can_modify_self(system_auditor):
|
||||
access = UserAccess(system_auditor)
|
||||
assert access.can_change(obj=system_auditor, data=dict(is_system_auditor='true'))
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_user_queryset(user):
|
||||
u = user('pete', False)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user