fix system auditor getter logic

This commit is contained in:
AlanCoding 2016-12-05 11:21:29 -05:00
parent 8e76da89f2
commit 14746eebe3
3 changed files with 15 additions and 3 deletions

View File

@ -76,7 +76,8 @@ User.add_to_class('auditor_of_organizations', user_get_auditor_of_organizations)
@property
def user_is_system_auditor(user):
if not hasattr(user, '_is_system_auditor'):
user._is_system_auditor = Role.objects.filter(role_field='system_auditor', id=user.id).exists()
user._is_system_auditor = user.roles.filter(
singleton_name='system_auditor', role_field='system_auditor').exists()
return user._is_system_auditor

View File

@ -41,7 +41,7 @@ from awx.main.models.organization import (
Permission,
Team,
)
from awx.main.models.rbac import Role
from awx.main.models.notifications import (
NotificationTemplate,
Notification
@ -262,6 +262,13 @@ def admin(user):
return user('admin', True)
@pytest.fixture
def system_auditor(user):
u = user(False)
Role.singleton('system_auditor').members.add(u)
return u
@pytest.fixture
def alice(user):
return user('alice', False)

View File

@ -9,7 +9,7 @@ from awx.main.models import Role, User, Organization, Inventory
@pytest.mark.django_db
class TestSysAuditor(TransactionTestCase):
class TestSysAuditorTransactional(TransactionTestCase):
def rando(self):
return User.objects.create(username='rando', password='rando', email='rando@com.com')
@ -41,6 +41,10 @@ class TestSysAuditor(TransactionTestCase):
assert not rando.is_system_auditor
@pytest.mark.django_db
def test_system_auditor_is_system_auditor(system_auditor):
assert system_auditor.is_system_auditor
@pytest.mark.django_db
def test_user_admin(user_project, project, user):