Fix bug #783: Verify email existence on membership objects
parent
9838287330
commit
1578f4352c
|
@ -93,6 +93,7 @@ class IssueTypeSerializer(ModelSerializer):
|
||||||
class MembershipSerializer(ModelSerializer):
|
class MembershipSerializer(ModelSerializer):
|
||||||
role_name = serializers.CharField(source='role.name', required=False, read_only=True)
|
role_name = serializers.CharField(source='role.name', required=False, read_only=True)
|
||||||
full_name = serializers.CharField(source='user.get_full_name', required=False, read_only=True)
|
full_name = serializers.CharField(source='user.get_full_name', required=False, read_only=True)
|
||||||
|
email = serializers.EmailField(required=True)
|
||||||
color = serializers.CharField(source='user.color', required=False, read_only=True)
|
color = serializers.CharField(source='user.color', required=False, read_only=True)
|
||||||
photo = serializers.SerializerMethodField("get_photo")
|
photo = serializers.SerializerMethodField("get_photo")
|
||||||
invited_by = serializers.SerializerMethodField("get_invited_by")
|
invited_by = serializers.SerializerMethodField("get_invited_by")
|
||||||
|
|
|
@ -39,22 +39,27 @@ def data():
|
||||||
|
|
||||||
m.public_membership = f.MembershipFactory(project=m.public_project,
|
m.public_membership = f.MembershipFactory(project=m.public_project,
|
||||||
user=m.project_member_with_perms,
|
user=m.project_member_with_perms,
|
||||||
|
email=m.project_member_with_perms.email,
|
||||||
role__project=m.public_project,
|
role__project=m.public_project,
|
||||||
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
||||||
m.private_membership1 = f.MembershipFactory(project=m.private_project1,
|
m.private_membership1 = f.MembershipFactory(project=m.private_project1,
|
||||||
user=m.project_member_with_perms,
|
user=m.project_member_with_perms,
|
||||||
|
email=m.project_member_with_perms.email,
|
||||||
role__project=m.private_project1,
|
role__project=m.private_project1,
|
||||||
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
||||||
f.MembershipFactory(project=m.private_project1,
|
f.MembershipFactory(project=m.private_project1,
|
||||||
user=m.project_member_without_perms,
|
user=m.project_member_without_perms,
|
||||||
|
email=m.project_member_without_perms.email,
|
||||||
role__project=m.private_project1,
|
role__project=m.private_project1,
|
||||||
role__permissions=[])
|
role__permissions=[])
|
||||||
m.private_membership2 = f.MembershipFactory(project=m.private_project2,
|
m.private_membership2 = f.MembershipFactory(project=m.private_project2,
|
||||||
user=m.project_member_with_perms,
|
user=m.project_member_with_perms,
|
||||||
|
email=m.project_member_with_perms.email,
|
||||||
role__project=m.private_project2,
|
role__project=m.private_project2,
|
||||||
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
role__permissions=list(map(lambda x: x[0], MEMBERS_PERMISSIONS)))
|
||||||
f.MembershipFactory(project=m.private_project2,
|
f.MembershipFactory(project=m.private_project2,
|
||||||
user=m.project_member_without_perms,
|
user=m.project_member_without_perms,
|
||||||
|
email=m.project_member_without_perms.email,
|
||||||
role__project=m.private_project2,
|
role__project=m.private_project2,
|
||||||
role__permissions=[])
|
role__permissions=[])
|
||||||
|
|
||||||
|
|
|
@ -86,3 +86,18 @@ def test_api_invite_existing_user(client, outbox):
|
||||||
|
|
||||||
assert message.to == [user.email]
|
assert message.to == [user.email]
|
||||||
assert "Added to the project" in message.subject
|
assert "Added to the project" in message.subject
|
||||||
|
|
||||||
|
def test_api_create_invalid_membership(client):
|
||||||
|
"Should create the invitation linked to that user"
|
||||||
|
user = f.UserFactory.create()
|
||||||
|
role = f.RoleFactory.create()
|
||||||
|
|
||||||
|
client.login(role.project.owner)
|
||||||
|
|
||||||
|
url = reverse("memberships-list")
|
||||||
|
data = {"role": role.pk, "project": role.project.pk}
|
||||||
|
|
||||||
|
response = client.json.post(url, data)
|
||||||
|
|
||||||
|
assert response.status_code == 400, response.data
|
||||||
|
assert user.memberships.count() == 0
|
||||||
|
|
Loading…
Reference in New Issue