@@ -53,7 +53,6 @@ def get_user_object_roles(user: Model) -> QuerySet:
5353
5454
5555def _resolve_team_organization_references (
56- team_ansible_ids : set [str ],
5756 object_arrays : dict [str , list ],
5857 org_ansible_id_to_index : dict [str , int ],
5958) -> None :
@@ -65,7 +64,6 @@ def _resolve_team_organization_references(
6564 arrays, it will be added.
6665
6766 Args:
68- team_ansible_ids: Set of team ansible_ids that need organization mapping
6967 object_arrays: Dictionary with model_type -> list of objects (will be modified)
7068 org_ansible_id_to_index: Maps organization ansible_id -> array_position (will be modified)
7169
@@ -74,6 +72,9 @@ def _resolve_team_organization_references(
7472 - Adds missing organizations to object_arrays['organization'] if needed
7573 - Updates org_ansible_id_to_index mappings for any added organizations
7674 """
75+ # Extract team ansible_ids from the team objects
76+ team_ansible_ids = {team_data ['ansible_id' ] for team_data in object_arrays ['team' ]}
77+
7778 if not team_ansible_ids :
7879 return
7980
@@ -89,7 +90,7 @@ def _resolve_team_organization_references(
8990 team_org_mapping [team_ansible_id ] = {'ansible_id' : org_ansible_id , 'name' : org_name }
9091
9192 # Update team objects with organization references
92- for team_data in object_arrays . get ( 'team' , []) :
93+ for team_data in object_arrays [ 'team' ] :
9394 team_ansible_id = team_data ['ansible_id' ]
9495 org_info = team_org_mapping .get (team_ansible_id )
9596
@@ -137,11 +138,10 @@ def _build_objects_and_roles(
137138 # Internal tracking for ansible_id to array position mapping
138139 ansible_id_to_index = defaultdict (dict ) # { <model_type>: {<ansible_id>: <array_position> } }
139140
140- # Collect team ansible_ids that need organization mapping
141- team_ansible_ids = set ()
141+ role_assignments = get_user_object_roles (user )
142142
143143 # Single loop: build object_arrays and object_roles
144- for assignment in get_user_object_roles ( user ) :
144+ for assignment in role_assignments :
145145 role_name = assignment .rd_name
146146 ansible_id = str (assignment .aid )
147147 resource_name = str (assignment .resource_name )
@@ -152,18 +152,12 @@ def _build_objects_and_roles(
152152 if model_type not in object_arrays :
153153 object_arrays [model_type ] = []
154154
155- # Collect team ansible_ids for organization resolution
156- if model_type == 'team' :
157- team_ansible_ids .add (ansible_id )
158-
159155 # If the ansible_id is not yet indexed
160156 if ansible_id not in ansible_id_to_index [model_type ]:
161157 # Cache the array position (current len will be the next index when we append)
162158 ansible_id_to_index [model_type ][ansible_id ] = len (object_arrays [model_type ])
163- # Add the object to the array (without org reference for teams yet)
159+ # Add the object to the array
164160 object_data = {'ansible_id' : ansible_id , 'name' : resource_name }
165- if model_type == 'team' :
166- object_data ['org' ] = None # Will be resolved later
167161 object_arrays [model_type ].append (object_data )
168162
169163 # Get the array position from the cache
@@ -177,7 +171,7 @@ def _build_objects_and_roles(
177171 object_roles [role_name ]['objects' ].append (array_position )
178172
179173 # Resolve team organization references
180- _resolve_team_organization_references (team_ansible_ids , object_arrays , ansible_id_to_index ['organization' ])
174+ _resolve_team_organization_references (object_arrays , ansible_id_to_index ['organization' ])
181175
182176 return object_arrays , object_roles
183177
0 commit comments