From 169c0e364c81ad623f0a3424e9c7e9c44b485db5 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Mon, 13 Oct 2014 12:19:24 +0200 Subject: [PATCH] Launching cancel_account signal when needed --- taiga/users/api.py | 4 ++++ taiga/users/signals.py | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 taiga/users/signals.py diff --git a/taiga/users/api.py b/taiga/users/api.py index 74d50ddf..ef93e36d 100644 --- a/taiga/users/api.py +++ b/taiga/users/api.py @@ -44,6 +44,7 @@ from taiga.projects.serializers import StarredSerializer from . import models from . import serializers from . import permissions +from .signals import user_cancel_account as user_cancel_account_signal class MembersFilterBackend(BaseFilterBackend): @@ -282,5 +283,8 @@ class UsersViewSet(ModelCrudViewSet): def destroy(self, request, pk=None): user = self.get_object() self.check_permissions(request, "destroy", user) + stream = request.stream + request_data = stream is not None and stream.GET or None + user_cancel_account_signal.send(sender=user.__class__, user=user, request_data=request_data) user.cancel() return Response(status=status.HTTP_204_NO_CONTENT) diff --git a/taiga/users/signals.py b/taiga/users/signals.py new file mode 100644 index 00000000..e61cec01 --- /dev/null +++ b/taiga/users/signals.py @@ -0,0 +1,20 @@ +# Copyright (C) 2014 Andrey Antukh +# Copyright (C) 2014 Jesús Espino +# Copyright (C) 2014 David Barragán +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import django.dispatch + + +user_cancel_account = django.dispatch.Signal(providing_args=["user", "request_data"])