Skip to content
Snippets Groups Projects
Commit ad3bd75d authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch '9-cannot-invite-so-many-users-at-once' into 'master'

Resolve "Cannot invite so many users at once"

Closes #9

See merge request AlekSIS/onboarding/AlekSIS-App-Matrix!4
parents 73abf100 70ce0bb5
No related branches found
No related tags found
1 merge request!4Resolve "Cannot invite so many users at once"
Pipeline #59203 canceled
......@@ -103,6 +103,7 @@ class MatrixRoom(ExtensiblePolymorphicModel):
not get_site_preferences()["matrix__disambiguate_room_aliases"]
or e.args[0].get("errcode") != "M_ROOM_IN_USE"
):
raise
match = re.match(r"^(.*)-(\d+)$", alias)
......@@ -137,7 +138,14 @@ class MatrixRoom(ExtensiblePolymorphicModel):
if creation_content:
body["creation_content"] = creation_content
r = do_matrix_request("POST", "createRoom", body=body)
try:
r = do_matrix_request("POST", "createRoom", body=body)
except MatrixException as e:
if e.args[0].get("error") == "Cannot invite so many users at once":
del body["invite"]
r = do_matrix_request("POST", "createRoom", body=body)
else:
raise
return r
......
......@@ -478,3 +478,22 @@ def test_matrix_profile():
profile = MatrixProfile.from_person(p1)
assert profile == MatrixProfile.from_person(p1)
def test_too_much_invites(matrix_bot_user):
get_site_preferences()["matrix__homeserver_ids"] = "matrix.aleksis.example.org"
g = Group.objects.create(name="Test Room")
persons = []
for i in range(100):
u = User.objects.create_user(f"test{i}", f"test{i}@example.org", f"test{i}")
p = Person.objects.create(first_name=f"Test {i}", last_name="Person", user=u)
persons.append(p)
g.members.set(persons)
room = MatrixRoom.from_group(g)
room.sync_profiles()
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