Skip to content
Snippets Groups Projects
Commit 4a4e1af2 authored by Valentin Rigal's avatar Valentin Rigal
Browse files

!1108 Add a validation for privilege level during member creation

parent f96a6374
No related branches found
No related tags found
No related merge requests found
......@@ -291,6 +291,7 @@ class MemberSerializer(MembershipSerializer):
id = serializers.IntegerField(read_only=True)
email = serializers.EmailField(source='user.email')
display_name = serializers.StringRelatedField(source='user.display_name', read_only=True)
level = serializers.IntegerField(min_value=0, max_value=100)
class Meta(MembershipSerializer.Meta):
fields = (
......
......@@ -374,6 +374,24 @@ class TestMembership(FixtureAPITestCase):
'level': ['This field is required.']
})
def test_add_member_level_validation(self):
"""
Level should be an integer between 0 and 100 (included)
"""
checks = (
({'level': 101}, {'level': ['Ensure this value is less than or equal to 100.']}),
({'level': -1}, {'level': ['Ensure this value is greater than or equal to 0.']})
)
self.client.force_login(self.user)
for payload, error in checks:
with self.assertNumQueries(4):
response = self.client.post(
reverse('api:group-members', kwargs={'pk': str(self.group.id)}),
{'email': self.admin.email, **payload}
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertDictEqual(response.json(), error)
def test_add_member_by_email(self):
"""
Adds a new member referenced by its email
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment