Allowing destroy roles with move memberships to other role

remotes/origin/enhancement/email-actions
Jesús Espino 2014-08-12 17:44:38 +02:00
parent 31d6185dd0
commit 7b2349b366
1 changed files with 15 additions and 0 deletions

View File

@ -248,6 +248,21 @@ class RolesViewSet(ModelCrudViewSet):
filter_backends = (filters.CanViewProjectFilterBackend,)
filter_fields = ('project',)
@tx.atomic
def destroy(self, request, *args, **kwargs):
moveTo = self.request.QUERY_PARAMS.get('moveTo', None)
if moveTo is None:
return super().destroy(request, *args, **kwargs)
obj = self.get_object_or_none()
moveItem = get_object_or_404(self.model, project=obj.project, id=moveTo)
self.check_permissions(request, 'destroy', obj)
models.Membership.objects.filter(project=obj.project, role=obj).update(role=moveItem)
return super().destroy(request, *args, **kwargs)
# User Stories commin ViewSets