|
36 | 36 | from synapse.event_auth import get_named_level, get_power_level_event |
37 | 37 | from synapse.events import EventBase |
38 | 38 | from synapse.events.snapshot import EventContext |
| 39 | +from synapse.handlers.profile import MAX_AVATAR_URL_LEN, MAX_DISPLAYNAME_LEN |
39 | 40 | from synapse.types import ( |
40 | 41 | JsonDict, |
41 | 42 | Requester, |
@@ -79,7 +80,7 @@ def __init__(self, hs: "HomeServer"): |
79 | 80 | self.account_data_handler = hs.get_account_data_handler() |
80 | 81 | self.event_auth_handler = hs.get_event_auth_handler() |
81 | 82 |
|
82 | | - self.member_linearizer = Linearizer(name="member") |
| 83 | + self.member_linearizer: Linearizer = Linearizer(name="member") |
83 | 84 |
|
84 | 85 | self.clock = hs.get_clock() |
85 | 86 | self.spam_checker = hs.get_spam_checker() |
@@ -556,6 +557,20 @@ async def update_membership_locked( |
556 | 557 | content.pop("displayname", None) |
557 | 558 | content.pop("avatar_url", None) |
558 | 559 |
|
| 560 | + if len(content.get("displayname") or "") > MAX_DISPLAYNAME_LEN: |
| 561 | + raise SynapseError( |
| 562 | + 400, |
| 563 | + f"Displayname is too long (max {MAX_DISPLAYNAME_LEN})", |
| 564 | + errcode=Codes.BAD_JSON, |
| 565 | + ) |
| 566 | + |
| 567 | + if len(content.get("avatar_url") or "") > MAX_AVATAR_URL_LEN: |
| 568 | + raise SynapseError( |
| 569 | + 400, |
| 570 | + f"Avatar URL is too long (max {MAX_AVATAR_URL_LEN})", |
| 571 | + errcode=Codes.BAD_JSON, |
| 572 | + ) |
| 573 | + |
559 | 574 | effective_membership_state = action |
560 | 575 | if action in ["kick", "unban"]: |
561 | 576 | effective_membership_state = "leave" |
|
0 commit comments