Skip to content

Commit 2eb90c9

Browse files
committed
Make team assignment endpoint work same as user
1 parent 76dc468 commit 2eb90c9

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

ansible_base/rbac/service_api/views.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,25 +41,13 @@ class RolePermissionTypeViewSet(
4141
prefetch_related = ('created_by__resource', 'content_type', 'role_definition')
4242

4343

44-
class ServiceRoleUserAssignmentViewSet(
44+
class BaseSerivceRoleAssignmentViewSet(
4545
AnsibleBaseDjangoAppApiView,
4646
mixins.ListModelMixin,
4747
GenericViewSet,
4848
):
4949
"""List of assignments for cross-service communication"""
5050

51-
queryset = RoleUserAssignment.objects.prefetch_related('user__resource', *prefetch_related)
52-
serializer_class = service_serializers.RoleUserAssignmentSerializer
53-
filter_backends = AnsibleBaseDjangoAppApiView.filter_backends + [
54-
ansible_id_backend.UserAnsibleIdAliasFilterBackend,
55-
ansible_id_backend.RoleAssignmentFilterBackend,
56-
]
57-
permission_classes = try_add_oauth2_scope_permission(
58-
[
59-
HasResourceRegistryPermissions,
60-
]
61-
)
62-
6351
def remote_secondary_sync_assignment(self, assignment, from_service=None):
6452
"""To allow service-specific sync when getting assignment from /service-index/ endpoint
6553
@@ -115,6 +103,20 @@ def perform_destroy(self, instance):
115103
instance.role_definition.remove_global_permission(instance.actor)
116104

117105

106+
class ServiceRoleUserAssignmentViewSet(BaseSerivceRoleAssignmentViewSet):
107+
queryset = RoleUserAssignment.objects.prefetch_related('user__resource', *prefetch_related)
108+
serializer_class = service_serializers.RoleUserAssignmentSerializer
109+
filter_backends = AnsibleBaseDjangoAppApiView.filter_backends + [
110+
ansible_id_backend.UserAnsibleIdAliasFilterBackend,
111+
ansible_id_backend.RoleAssignmentFilterBackend,
112+
]
113+
permission_classes = try_add_oauth2_scope_permission(
114+
[
115+
HasResourceRegistryPermissions,
116+
]
117+
)
118+
119+
118120
class ServiceRoleTeamAssignmentViewSet(
119121
AnsibleBaseDjangoAppApiView,
120122
mixins.ListModelMixin,

ansible_base/resource_registry/rest_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ def _sync_assignment(self, data, giving=True):
207207
sub_url = 'unassign'
208208

209209
actor_type = 'user'
210-
if 'team' in data:
210+
if data.get('team_ansible_id'):
211211
actor_type = 'team'
212212

213213
url = f'role-{actor_type}-assignments/{sub_url}/'

0 commit comments

Comments
 (0)