Fix issue #4058: Remove memberships of deleted users

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-04-06 19:16:51 +02:00
parent 157c9d45e0
commit 53b480c127
3 changed files with 40 additions and 1 deletions

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.2 on 2016-04-06 15:46
from __future__ import unicode_literals
from django.db import migrations
def remove_memberships_of_cancelled_users_acounts(apps, schema_editor):
Membership = apps.get_model("projects", "Membership")
Membership.objects.filter(user__is_active=False).delete()
class Migration(migrations.Migration):
dependencies = [
('projects', '0039_auto_20160322_1157'),
]
operations = [
migrations.RunPython(remove_memberships_of_cancelled_users_acounts),
]

View File

@ -280,9 +280,12 @@ class User(AbstractBaseUser, PermissionsMixin):
self.save()
self.auth_data.all().delete()
#Blocking all owned users
# Blocking all owned projects
self.owned_projects.update(blocked_code=BLOCKED_BY_OWNER_LEAVING)
# Remove all memberships
self.memberships.all().delete()
class Role(models.Model):
name = models.CharField(max_length=200, null=False, blank=False,

View File

@ -165,6 +165,21 @@ def test_delete_self_user_blocking_projects(client):
assert project.blocked_code == project_choices.BLOCKED_BY_OWNER_LEAVING
def test_delete_self_user_remove_membership_projects(client):
project = f.ProjectFactory.create()
user = f.UserFactory.create()
f.create_membership(project=project, user=user)
url = reverse('users-detail', kwargs={"pk": user.pk})
assert project.memberships.all().count() == 1
client.login(user)
response = client.delete(url)
assert project.memberships.all().count() == 0
def test_cancel_self_user_with_valid_token(client):
user = f.UserFactory.create()
url = reverse('users-cancel')