Merge pull request #676 from taigaio/check-max-owner-memberships-when-creating-invitations
Checking max owner memberships when creating invitationsremotes/origin/issue/4795/notification_even_they_are_disabled
commit
893275e101
|
@ -634,7 +634,7 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet):
|
||||||
if "bulk_memberships" in data and isinstance(data["bulk_memberships"], list):
|
if "bulk_memberships" in data and isinstance(data["bulk_memberships"], list):
|
||||||
members = len(data["bulk_memberships"])
|
members = len(data["bulk_memberships"])
|
||||||
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
|
(enough_slots, not_enough_slots_error) = users_service.has_available_slot_for_project(
|
||||||
request.user,
|
project.owner,
|
||||||
project=project,
|
project=project,
|
||||||
members=members
|
members=members
|
||||||
)
|
)
|
||||||
|
|
|
@ -77,6 +77,33 @@ def test_api_create_bulk_members_without_enough_memberships_private_project_slot
|
||||||
assert "reached the limit of memberships for private" in response.data["_error_message"]
|
assert "reached the limit of memberships for private" in response.data["_error_message"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_create_bulk_members_for_admin_without_enough_memberships_private_project_slots_one_project(client):
|
||||||
|
owner = f.UserFactory.create(max_memberships_private_projects=3)
|
||||||
|
user = f.UserFactory.create()
|
||||||
|
project = f.ProjectFactory(owner=owner, is_private=True)
|
||||||
|
role = f.RoleFactory(project=project, name="Test")
|
||||||
|
f.MembershipFactory(project=project, user=user, is_admin=True)
|
||||||
|
|
||||||
|
url = reverse("memberships-bulk-create")
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"project_id": project.id,
|
||||||
|
"bulk_memberships": [
|
||||||
|
{"role_id": role.pk, "email": "test1@test.com"},
|
||||||
|
{"role_id": role.pk, "email": "test2@test.com"},
|
||||||
|
{"role_id": role.pk, "email": "test3@test.com"},
|
||||||
|
{"role_id": role.pk, "email": "test4@test.com"},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
client.login(user)
|
||||||
|
response = client.json.post(url, json.dumps(data))
|
||||||
|
|
||||||
|
assert response.status_code == 400
|
||||||
|
assert "reached the limit of memberships for private" in response.data["_error_message"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_api_create_bulk_members_with_enough_memberships_private_project_slots_multiple_projects(client):
|
def test_api_create_bulk_members_with_enough_memberships_private_project_slots_multiple_projects(client):
|
||||||
user = f.UserFactory.create(max_memberships_private_projects=6)
|
user = f.UserFactory.create(max_memberships_private_projects=6)
|
||||||
project = f.ProjectFactory(owner=user, is_private=True)
|
project = f.ProjectFactory(owner=user, is_private=True)
|
||||||
|
|
Loading…
Reference in New Issue