Force regenerate invitations uuids on dump load
parent
7beff9cab7
commit
8868e89d6f
|
@ -425,7 +425,7 @@ class MembershipExportSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = projects_models.Membership
|
model = projects_models.Membership
|
||||||
exclude = ('id', 'project')
|
exclude = ('id', 'project', 'token')
|
||||||
|
|
||||||
def full_clean(self, instance):
|
def full_clean(self, instance):
|
||||||
return instance
|
return instance
|
||||||
|
|
|
@ -182,7 +182,6 @@ def store_membership(project, membership):
|
||||||
if serialized.is_valid():
|
if serialized.is_valid():
|
||||||
serialized.object.project = project
|
serialized.object.project = project
|
||||||
serialized.object._importing = True
|
serialized.object._importing = True
|
||||||
if not serialized.object.token:
|
|
||||||
serialized.object.token = str(uuid.uuid1())
|
serialized.object.token = str(uuid.uuid1())
|
||||||
serialized.object.user = find_invited_user(serialized.object.email,
|
serialized.object.user = find_invited_user(serialized.object.email,
|
||||||
default=serialized.object.user)
|
default=serialized.object.user)
|
||||||
|
|
|
@ -25,7 +25,7 @@ from .. import factories as f
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
|
|
||||||
from taiga.base.utils import json
|
from taiga.base.utils import json
|
||||||
from taiga.projects.models import Project
|
from taiga.projects.models import Project, Membership
|
||||||
from taiga.projects.issues.models import Issue
|
from taiga.projects.issues.models import Issue
|
||||||
from taiga.projects.userstories.models import UserStory
|
from taiga.projects.userstories.models import UserStory
|
||||||
from taiga.projects.tasks.models import Task
|
from taiga.projects.tasks.models import Task
|
||||||
|
@ -90,6 +90,28 @@ def test_valid_project_import_with_not_existing_memberships(client):
|
||||||
assert len(response_data["memberships"]) == 2
|
assert len(response_data["memberships"]) == 2
|
||||||
|
|
||||||
|
|
||||||
|
def test_valid_project_import_with_membership_uuid_rewrite(client):
|
||||||
|
user = f.UserFactory.create()
|
||||||
|
client.login(user)
|
||||||
|
|
||||||
|
url = reverse("importer-list")
|
||||||
|
data = {
|
||||||
|
"name": "Imported project",
|
||||||
|
"description": "Imported project",
|
||||||
|
"memberships": [{
|
||||||
|
"email": "with-uuid@email.com",
|
||||||
|
"role": "Role",
|
||||||
|
"token": "123",
|
||||||
|
}],
|
||||||
|
"roles": [{"name": "Role"}]
|
||||||
|
}
|
||||||
|
|
||||||
|
response = client.post(url, json.dumps(data), content_type="application/json")
|
||||||
|
assert response.status_code == 201
|
||||||
|
response_data = json.loads(response.content.decode("utf-8"))
|
||||||
|
assert Membership.objects.filter(email="with-uuid@email.com", token="123").count() == 0
|
||||||
|
|
||||||
|
|
||||||
def test_valid_project_import_with_extra_data(client):
|
def test_valid_project_import_with_extra_data(client):
|
||||||
user = f.UserFactory.create()
|
user = f.UserFactory.create()
|
||||||
client.login(user)
|
client.login(user)
|
||||||
|
|
Loading…
Reference in New Issue