mirror of
https://github.com/ansible/awx.git
synced 2026-03-26 05:15:02 -02:30
updated organization rbac tests
This commit is contained in:
@@ -1,6 +1,18 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from awx.main.models.organization import Organization
|
from awx.main.models.organization import Organization
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def user():
|
||||||
|
def u(name, is_superuser=False):
|
||||||
|
try:
|
||||||
|
user = User.objects.get(username=name)
|
||||||
|
except User.DoesNotExist:
|
||||||
|
user = User(username=name, is_superuser=is_superuser, password=name)
|
||||||
|
user.save()
|
||||||
|
return user
|
||||||
|
return u
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def organization():
|
def organization():
|
||||||
|
|||||||
@@ -1,51 +1,39 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from awx.main.access import OrganizationAccess
|
from awx.main.access import OrganizationAccess
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
def make_user(name, admin=False):
|
|
||||||
try:
|
|
||||||
user = User.objects.get(username=name)
|
|
||||||
except User.DoesNotExist:
|
|
||||||
user = User(username=name, is_superuser=admin, password=name)
|
|
||||||
user.save()
|
|
||||||
return user
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@pytest.mark.parametrize("username,admin", [
|
def test_organization_migration_admin(organization, permissions, user):
|
||||||
("admin", True),
|
u = user('admin', True)
|
||||||
("user", False),
|
organization.admins.add(u)
|
||||||
])
|
|
||||||
def test_organization_migration(organization, permissions, username, admin):
|
|
||||||
user = make_user(username, admin)
|
|
||||||
if admin:
|
|
||||||
organization.admins.add(user)
|
|
||||||
else:
|
|
||||||
organization.users.add(user)
|
|
||||||
|
|
||||||
migrated_users = organization.migrate_to_rbac()
|
migrated_users = organization.migrate_to_rbac()
|
||||||
assert len(migrated_users) == 1
|
assert len(migrated_users) == 1
|
||||||
assert migrated_users[0] == user
|
assert organization.accessible_by(u, permissions['admin']) == True
|
||||||
|
|
||||||
if admin:
|
|
||||||
assert organization.accessible_by(user, permissions['admin']) == True
|
|
||||||
else:
|
|
||||||
assert organization.accessible_by(user, permissions['auditor']) == True
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@pytest.mark.parametrize("username,admin", [
|
def test_organization_migration_user(organization, permissions, user):
|
||||||
("admin", True),
|
u = user('user', False)
|
||||||
("user-admin", False),
|
organization.users.add(u)
|
||||||
("user", False)
|
|
||||||
])
|
|
||||||
def test_organization_access(organization, username, admin):
|
|
||||||
user = make_user(username, admin)
|
|
||||||
access = OrganizationAccess(user)
|
|
||||||
if admin:
|
|
||||||
assert access.can_change(organization, None) == True
|
|
||||||
elif username == "user-admin":
|
|
||||||
organization.admins.add(user)
|
|
||||||
assert access.can_change(organization, None) == True
|
|
||||||
else:
|
|
||||||
assert access.can_change(organization, None) == False
|
|
||||||
|
|
||||||
|
migrated_users = organization.migrate_to_rbac()
|
||||||
|
assert len(migrated_users) == 1
|
||||||
|
assert organization.accessible_by(u, permissions['auditor']) == True
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_organization_access_superuser(organization, user):
|
||||||
|
access = OrganizationAccess(user('admin', True))
|
||||||
|
assert access.can_change(organization, None) == True
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_organization_access_admin(organization, user):
|
||||||
|
u = user('admin', False)
|
||||||
|
organization.admins.add(u)
|
||||||
|
|
||||||
|
access = OrganizationAccess(u)
|
||||||
|
assert access.can_change(organization, None) == True
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_organization_access_user(organization, user):
|
||||||
|
access = OrganizationAccess(user('user', False))
|
||||||
|
assert access.can_change(organization, None) == False
|
||||||
|
|||||||
Reference in New Issue
Block a user