Projet

Général

Profil

0001-api-check-members-presence-before-removing-them-5086.patch

Benjamin Dauvergne, 04 février 2021 16:52

Télécharger (1,58 ko)

Voir les différences:

Subject: [PATCH] api: check members presence before removing them (#50861)

It prevents the trigger of unneeded m2m_changed signals.
 src/authentic2/api_views.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
src/authentic2/api_views.py
921 921
                        status=status.HTTP_201_CREATED)
922 922

  
923 923
    def delete(self, request, *args, **kwargs):
924
        self.role.members.remove(self.member)
924
        # prevent useless m2m_changed signals
925
        if self.role.members.filter(id=self.member.id):
926
            self.role.members.remove(self.member)
925 927
        return Response({'result': 1, 'detail': _('User successfully removed from role')},
926 928
                        status=status.HTTP_200_OK)
927 929

  
......
978 980
                status=status.HTTP_201_CREATED)
979 981

  
980 982
    def delete(self, request, *args, **kwargs):
981
        self.role.members.remove(*self.members)
983
        # prevent useless m2m_changed signals
984
        members_to_delete = self.role.members.filter(id__in=[member.id for member in self.members])
985
        self.role.members.remove(*members_to_delete)
982 986
        return Response(
983 987
                {
984 988
                    'result': 1,
985
-