Skip to content

Commit 14d45ed

Browse files
committed
Auto-create some teams in demo data
1 parent 287a4a7 commit 14d45ed

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

test_app/management/commands/create_demo_data.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from ansible_base.authentication.models import Authenticator, AuthenticatorUser
99
from ansible_base.oauth2_provider.models import OAuth2Application
10+
from ansible_base.rbac import permission_registry
1011
from ansible_base.rbac.models import DABContentType, RoleDefinition
1112
from test_app.models import EncryptionModel, InstanceGroup, Inventory, Organization, Team, User
1213

@@ -41,6 +42,7 @@ def handle(self, *args, **kwargs):
4142
(galaxy, _) = Organization.objects.get_or_create(name='Galaxy_community')
4243

4344
(spud, _) = User.objects.get_or_create(username='angry_spud')
45+
(team_member, _) = User.objects.get_or_create(username='team_member')
4446
(bull_bot, _) = User.objects.get_or_create(username='ansibullbot')
4547
(admin, _) = User.objects.get_or_create(username='admin')
4648
spud.set_password('password')
@@ -72,8 +74,8 @@ def handle(self, *args, **kwargs):
7274

7375
# Inventory objects exist inside of an organization
7476
Inventory.objects.create(name='K8S clusters', organization=operator_stuff)
75-
Inventory.objects.create(name='Galaxy Host', organization=galaxy)
76-
Inventory.objects.create(name='AWX deployment', organization=awx)
77+
galaxy_inv = Inventory.objects.create(name='Galaxy Host', organization=galaxy)
78+
awx_inv = Inventory.objects.create(name='AWX deployment', organization=awx)
7779
# Objects that have no associated organization
7880
InstanceGroup.objects.create(name='Default')
7981
isolated_group = InstanceGroup.objects.create(name='Isolated Network')
@@ -95,7 +97,18 @@ def handle(self, *args, **kwargs):
9597
user.set_password('password')
9698
user.save()
9799

98-
RoleDefinition.objects.managed.team_member.give_permission(spud, awx_devs)
100+
# Give some users team member and give that team some inventory object permissions
101+
for user in (spud, team_member):
102+
RoleDefinition.objects.managed.team_member.give_permission(spud, awx_devs)
103+
104+
with impersonate(bull_bot):
105+
inv_admin = RoleDefinition.objects.create_from_permissions(
106+
permissions=['change_inventory', 'view_inventory'],
107+
name='Inventory Admin',
108+
content_type=permission_registry.content_type_model.objects.get_for_model(Inventory),
109+
)
110+
for inv in (awx_inv, galaxy_inv):
111+
inv_admin.give_permission(awx_devs, inv)
99112

100113
OAuth2Application.objects.get_or_create(
101114
name="Demo OAuth2 Application",

0 commit comments

Comments
 (0)