[Backport] Fix issue #4058: Remove memberships of deleted users
parent
472b8df982
commit
4e3c4aa62d
|
@ -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),
|
||||
]
|
|
@ -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,
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue