Now on user delete don't delete the User object, only make it anonymous

remotes/origin/enhancement/email-actions
Jesús Espino 2014-07-30 15:02:41 +02:00
parent 57659d72df
commit 64a517a83a
1 changed files with 18 additions and 0 deletions

View File

@ -34,6 +34,7 @@ from taiga.base.decorators import action
from taiga.base import exceptions as exc from taiga.base import exceptions as exc
from taiga.base.api import ModelCrudViewSet from taiga.base.api import ModelCrudViewSet
from taiga.base.api import ModelListViewSet from taiga.base.api import ModelListViewSet
from taiga.base.utils.slug import slugify_uniquely
from taiga.projects.votes import services as votes_service from taiga.projects.votes import services as votes_service
from taiga.projects.serializers import StarredSerializer from taiga.projects.serializers import StarredSerializer
@ -178,3 +179,20 @@ class UsersViewSet(ModelCrudViewSet):
stars = votes_service.get_voted(user.pk, model=get_model('projects', 'Project')) stars = votes_service.get_voted(user.pk, model=get_model('projects', 'Project'))
stars_data = StarredSerializer(stars, many=True) stars_data = StarredSerializer(stars, many=True)
return Response(stars_data.data) return Response(stars_data.data)
def destroy(self, request, pk=None):
user = self.get_object()
user.username = slugify_uniquely("deleted-user", models.User, slugfield="username")
user.email = "deleted-user@taiga.io"
user.is_active = False
user.full_name = "Deleted user"
user.color = ""
user.bio = ""
user.default_language = ""
user.default_timezone = ""
user.colorize_tags = True
user.token = None
user.github_id = None
user.set_unusable_password()
user.save()
return Response(status=status.HTTP_204_NO_CONTENT)