Fix issue #4058: Remove memberships of deleted users
parent
157c9d45e0
commit
53b480c127
|
@ -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.save()
|
||||||
self.auth_data.all().delete()
|
self.auth_data.all().delete()
|
||||||
|
|
||||||
#Blocking all owned users
|
# Blocking all owned projects
|
||||||
self.owned_projects.update(blocked_code=BLOCKED_BY_OWNER_LEAVING)
|
self.owned_projects.update(blocked_code=BLOCKED_BY_OWNER_LEAVING)
|
||||||
|
|
||||||
|
# Remove all memberships
|
||||||
|
self.memberships.all().delete()
|
||||||
|
|
||||||
|
|
||||||
class Role(models.Model):
|
class Role(models.Model):
|
||||||
name = models.CharField(max_length=200, null=False, blank=False,
|
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
|
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):
|
def test_cancel_self_user_with_valid_token(client):
|
||||||
user = f.UserFactory.create()
|
user = f.UserFactory.create()
|
||||||
url = reverse('users-cancel')
|
url = reverse('users-cancel')
|
||||||
|
|
Loading…
Reference in New Issue