mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -03:30
convert Team to django migrations
This commit is contained in:
parent
8cf0ba0da7
commit
f29fdf694f
@ -14,4 +14,5 @@ class Migration(migrations.Migration):
|
||||
operations = [
|
||||
migrations.RunPython(rbac.migrate_organization),
|
||||
migrations.RunPython(rbac.migrate_credential),
|
||||
migrations.RunPython(rbac.migrate_team),
|
||||
]
|
||||
|
||||
@ -12,6 +12,14 @@ def migrate_organization(apps, schema_editor):
|
||||
migrations[org.name].append(user)
|
||||
return migrations
|
||||
|
||||
def migrate_team(apps, schema_editor):
|
||||
migrations = defaultdict(list)
|
||||
team = apps.get_model('main', 'Team')
|
||||
for t in team.objects.all():
|
||||
for user in t.users.all():
|
||||
t.member_role.members.add(user)
|
||||
migrations[t.name].append(user)
|
||||
return migrations
|
||||
|
||||
def migrate_credential(apps, schema_editor):
|
||||
migrations = defaultdict(list)
|
||||
|
||||
@ -134,12 +134,6 @@ class Team(CommonModelNameNotUnique, ResourceMixin):
|
||||
cred.mark_inactive()
|
||||
super(Team, self).mark_inactive(save=save)
|
||||
|
||||
def migrate_to_rbac(self):
|
||||
migrated = []
|
||||
for user in self.users.all():
|
||||
self.member_role.members.add(user)
|
||||
migrated.append(user)
|
||||
return migrated
|
||||
|
||||
class Permission(CommonModelNameNotUnique):
|
||||
'''
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from awx.main.migrations import _rbac as rbac
|
||||
from awx.main.models import Permission
|
||||
from django.apps import apps
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_inventory_admin_user(inventory, permissions, user):
|
||||
@ -82,7 +84,7 @@ def test_inventory_admin_team(inventory, permissions, user, team):
|
||||
|
||||
assert inventory.accessible_by(u, permissions['admin']) is False
|
||||
|
||||
team_migrations = team.migrate_to_rbac()
|
||||
team_migrations = rbac.migrate_team(apps, None)
|
||||
migrations = inventory.migrate_to_rbac()
|
||||
|
||||
assert len(team_migrations) == 1
|
||||
@ -107,7 +109,7 @@ def test_inventory_auditor(inventory, permissions, user, team):
|
||||
assert inventory.accessible_by(u, permissions['admin']) is False
|
||||
assert inventory.accessible_by(u, permissions['auditor']) is False
|
||||
|
||||
team_migrations = team.migrate_to_rbac()
|
||||
team_migrations = rbac.migrate_team(apps,None)
|
||||
migrations = inventory.migrate_to_rbac()
|
||||
|
||||
assert len(team_migrations) == 1
|
||||
@ -131,7 +133,7 @@ def test_inventory_updater(inventory, permissions, user, team):
|
||||
assert inventory.accessible_by(u, permissions['admin']) is False
|
||||
assert inventory.accessible_by(u, permissions['auditor']) is False
|
||||
|
||||
team_migrations = team.migrate_to_rbac()
|
||||
team_migrations = rbac.migrate_team(apps,None)
|
||||
migrations = inventory.migrate_to_rbac()
|
||||
|
||||
assert len(team_migrations) == 1
|
||||
@ -156,7 +158,7 @@ def test_inventory_executor(inventory, permissions, user, team):
|
||||
assert inventory.accessible_by(u, permissions['admin']) is False
|
||||
assert inventory.accessible_by(u, permissions['auditor']) is False
|
||||
|
||||
team_migrations = team.migrate_to_rbac()
|
||||
team_migrations = rbac.migrate_team(apps, None)
|
||||
migrations = inventory.migrate_to_rbac()
|
||||
|
||||
assert len(team_migrations) == 1
|
||||
|
||||
@ -1,13 +1,17 @@
|
||||
import pytest
|
||||
|
||||
from awx.main.migrations import _rbac as rbac
|
||||
from django.apps import apps
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_team_migration_user(team, user, permissions):
|
||||
u = user('user', False)
|
||||
team.users.add(u)
|
||||
team.save()
|
||||
|
||||
assert not team.accessible_by(u, permissions['auditor'])
|
||||
|
||||
migrated = team.migrate_to_rbac()
|
||||
migrated = rbac.migrate_team(apps, None)
|
||||
|
||||
assert len(migrated) == 1
|
||||
assert team.accessible_by(u, permissions['auditor'])
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user