mirror of
https://github.com/ansible/awx.git
synced 2026-02-03 02:28:12 -03:30
Migration and tests for super users
This commit is contained in:
@@ -1,5 +1,15 @@
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
|
def migrate_users(apps, schema_editor):
|
||||||
|
migrations = list()
|
||||||
|
User = apps.get_model('auth', "User")
|
||||||
|
Role = apps.get_model('main', "Role")
|
||||||
|
for user in User.objects.all():
|
||||||
|
if user.is_superuser:
|
||||||
|
Role.singleton('System Administrator').members.add(user)
|
||||||
|
migrations.append(user)
|
||||||
|
return migrations
|
||||||
|
|
||||||
def migrate_organization(apps, schema_editor):
|
def migrate_organization(apps, schema_editor):
|
||||||
migrations = defaultdict(list)
|
migrations = defaultdict(list)
|
||||||
organization = apps.get_model('main', "Organization")
|
organization = apps.get_model('main', "Organization")
|
||||||
|
|||||||
20
awx/main/tests/functional/test_rbac_user.py
Normal file
20
awx/main/tests/functional/test_rbac_user.py
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import pytest
|
||||||
|
|
||||||
|
from awx.main.migrations import _rbac as rbac
|
||||||
|
from awx.main.models import Role
|
||||||
|
from django.apps import apps
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_user_admin(user_project, project, user):
|
||||||
|
joe = user('joe', is_superuser = False)
|
||||||
|
admin = user('admin', is_superuser = True)
|
||||||
|
sa = Role.singleton('System Administrator')
|
||||||
|
|
||||||
|
assert sa.members.filter(id=joe.id).exists() is False
|
||||||
|
assert sa.members.filter(id=admin.id).exists() is False
|
||||||
|
|
||||||
|
migrations = rbac.migrate_users(apps, None)
|
||||||
|
|
||||||
|
assert sa.members.filter(id=joe.id).exists() is False
|
||||||
|
assert sa.members.filter(id=admin.id).exists() is True
|
||||||
|
assert len(migrations) == 1
|
||||||
Reference in New Issue
Block a user