Force regenerate invitations uuids on dump load

remotes/origin/enhancement/email-actions
Jesús Espino 2015-03-30 12:33:28 +02:00
parent 7beff9cab7
commit 8868e89d6f
3 changed files with 25 additions and 4 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)