diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 291b0d03..3f17184a 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -80,5 +80,8 @@ urlpatterns = [ path('available_statuses/', views.StatusesListView.as_view(), name='statuses-list'), path('employee_establishment_positions//', views.EmployeeEstablishmentPositionsView.as_view(), name='employee-establishment-positions'), - path('team/', views.TeamMemberListView.as_view(), name='establishment-team-members-list') + path('team/', views.TeamMemberListView.as_view(), name='establishment-team-members-list'), + path('team//', views.TeamMemberDeleteView.as_view(), + name='establishment-team-member-delete'), + ] diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index a50655d0..822d6f7b 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -926,3 +926,15 @@ class TeamMemberListView(generics.ListAPIView): establishment = get_object_or_404(klass=models.Establishment, pk=self.kwargs['establishment_id']) return super().get_queryset().filter(roles__role=Role.ESTABLISHMENT_ADMINISTRATOR, userrole__establishment=establishment, userrole__state=UserRole.VALIDATED) + + +class TeamMemberDeleteView(generics.DestroyAPIView): + """Delete user from team""" + permission_classes = get_permission_classes( + IsEstablishmentManager, + IsEstablishmentAdministrator + ) + + def get_object(self): + return UserRole.objects.get(role__role=Role.ESTABLISHMENT_ADMINISTRATOR, user_id=self.kwargs['user_id'], + establishment_id=self.kwargs['establishment_id'])