convert Team to django migrations

This commit is contained in:
Wayne Witzel III 2016-02-08 16:05:05 -05:00
parent 8cf0ba0da7
commit f29fdf694f
5 changed files with 21 additions and 12 deletions

View File

@ -14,4 +14,5 @@ class Migration(migrations.Migration):
operations = [
migrations.RunPython(rbac.migrate_organization),
migrations.RunPython(rbac.migrate_credential),
migrations.RunPython(rbac.migrate_team),
]

View File

@ -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)

View File

@ -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):
'''

View File

@ -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

View File

@ -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'])