mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-09-07 22:52:01 +00:00
Add a constant for m.federate. (#10775)
This commit is contained in:
parent
66d72b7e17
commit
0288e6033b
1
changelog.d/10775.misc
Normal file
1
changelog.d/10775.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Add a constant for `m.federate`.
|
@ -198,6 +198,9 @@ class EventContentFields:
|
|||||||
# cf https://github.com/matrix-org/matrix-doc/pull/1772
|
# cf https://github.com/matrix-org/matrix-doc/pull/1772
|
||||||
ROOM_TYPE = "type"
|
ROOM_TYPE = "type"
|
||||||
|
|
||||||
|
# Whether a room can federate.
|
||||||
|
FEDERATE = "m.federate"
|
||||||
|
|
||||||
# The creator of the room, as used in `m.room.create` events.
|
# The creator of the room, as used in `m.room.create` events.
|
||||||
ROOM_CREATOR = "creator"
|
ROOM_CREATOR = "creator"
|
||||||
|
|
||||||
|
@ -21,7 +21,13 @@ from signedjson.key import decode_verify_key_bytes
|
|||||||
from signedjson.sign import SignatureVerifyException, verify_signed_json
|
from signedjson.sign import SignatureVerifyException, verify_signed_json
|
||||||
from unpaddedbase64 import decode_base64
|
from unpaddedbase64 import decode_base64
|
||||||
|
|
||||||
from synapse.api.constants import MAX_PDU_SIZE, EventTypes, JoinRules, Membership
|
from synapse.api.constants import (
|
||||||
|
MAX_PDU_SIZE,
|
||||||
|
EventContentFields,
|
||||||
|
EventTypes,
|
||||||
|
JoinRules,
|
||||||
|
Membership,
|
||||||
|
)
|
||||||
from synapse.api.errors import AuthError, EventSizeError, SynapseError
|
from synapse.api.errors import AuthError, EventSizeError, SynapseError
|
||||||
from synapse.api.room_versions import (
|
from synapse.api.room_versions import (
|
||||||
KNOWN_ROOM_VERSIONS,
|
KNOWN_ROOM_VERSIONS,
|
||||||
@ -236,7 +242,7 @@ def _can_federate(event: EventBase, auth_events: StateMap[EventBase]) -> bool:
|
|||||||
if not creation_event:
|
if not creation_event:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return creation_event.content.get("m.federate", True) is True
|
return creation_event.content.get(EventContentFields.FEDERATE, True) is True
|
||||||
|
|
||||||
|
|
||||||
def _is_membership_change_allowed(
|
def _is_membership_change_allowed(
|
||||||
|
@ -21,7 +21,13 @@ from prometheus_client import Counter
|
|||||||
from typing_extensions import TypedDict
|
from typing_extensions import TypedDict
|
||||||
|
|
||||||
from synapse import types
|
from synapse import types
|
||||||
from synapse.api.constants import MAX_USERID_LENGTH, EventTypes, JoinRules, LoginType
|
from synapse.api.constants import (
|
||||||
|
MAX_USERID_LENGTH,
|
||||||
|
EventContentFields,
|
||||||
|
EventTypes,
|
||||||
|
JoinRules,
|
||||||
|
LoginType,
|
||||||
|
)
|
||||||
from synapse.api.errors import AuthError, Codes, ConsentNotGivenError, SynapseError
|
from synapse.api.errors import AuthError, Codes, ConsentNotGivenError, SynapseError
|
||||||
from synapse.appservice import ApplicationService
|
from synapse.appservice import ApplicationService
|
||||||
from synapse.config.server import is_threepid_reserved
|
from synapse.config.server import is_threepid_reserved
|
||||||
@ -405,7 +411,7 @@ class RegistrationHandler(BaseHandler):
|
|||||||
|
|
||||||
# Choose whether to federate the new room.
|
# Choose whether to federate the new room.
|
||||||
if not self.hs.config.registration.autocreate_auto_join_rooms_federated:
|
if not self.hs.config.registration.autocreate_auto_join_rooms_federated:
|
||||||
stub_config["creation_content"] = {"m.federate": False}
|
stub_config["creation_content"] = {EventContentFields.FEDERATE: False}
|
||||||
|
|
||||||
for r in self.hs.config.registration.auto_join_rooms:
|
for r in self.hs.config.registration.auto_join_rooms:
|
||||||
logger.info("Auto-joining %s to %s", user_id, r)
|
logger.info("Auto-joining %s to %s", user_id, r)
|
||||||
|
@ -390,9 +390,9 @@ class RoomCreationHandler(BaseHandler):
|
|||||||
old_room_create_event = await self.store.get_create_event_for_room(old_room_id)
|
old_room_create_event = await self.store.get_create_event_for_room(old_room_id)
|
||||||
|
|
||||||
# Check if the create event specified a non-federatable room
|
# Check if the create event specified a non-federatable room
|
||||||
if not old_room_create_event.content.get("m.federate", True):
|
if not old_room_create_event.content.get(EventContentFields.FEDERATE, True):
|
||||||
# If so, mark the new room as non-federatable as well
|
# If so, mark the new room as non-federatable as well
|
||||||
creation_content["m.federate"] = False
|
creation_content[EventContentFields.FEDERATE] = False
|
||||||
|
|
||||||
initial_state = {}
|
initial_state = {}
|
||||||
|
|
||||||
|
@ -313,7 +313,9 @@ class RoomListHandler(BaseHandler):
|
|||||||
|
|
||||||
# Return whether this room is open to federation users or not
|
# Return whether this room is open to federation users or not
|
||||||
create_event = current_state[EventTypes.Create, ""]
|
create_event = current_state[EventTypes.Create, ""]
|
||||||
result["m.federate"] = create_event.content.get("m.federate", True)
|
result["m.federate"] = create_event.content.get(
|
||||||
|
EventContentFields.FEDERATE, True
|
||||||
|
)
|
||||||
|
|
||||||
name_event = current_state.get((EventTypes.Name, ""))
|
name_event = current_state.get((EventTypes.Name, ""))
|
||||||
if name_event:
|
if name_event:
|
||||||
|
@ -254,7 +254,7 @@ class StatsHandler:
|
|||||||
|
|
||||||
elif typ == EventTypes.Create:
|
elif typ == EventTypes.Create:
|
||||||
room_state["is_federatable"] = (
|
room_state["is_federatable"] = (
|
||||||
event_content.get("m.federate", True) is True
|
event_content.get(EventContentFields.FEDERATE, True) is True
|
||||||
)
|
)
|
||||||
elif typ == EventTypes.JoinRules:
|
elif typ == EventTypes.JoinRules:
|
||||||
room_state["join_rules"] = event_content.get("join_rule")
|
room_state["join_rules"] = event_content.get("join_rule")
|
||||||
|
@ -22,7 +22,7 @@ from typing_extensions import Counter
|
|||||||
|
|
||||||
from twisted.internet.defer import DeferredLock
|
from twisted.internet.defer import DeferredLock
|
||||||
|
|
||||||
from synapse.api.constants import EventTypes, Membership
|
from synapse.api.constants import EventContentFields, EventTypes, Membership
|
||||||
from synapse.api.errors import StoreError
|
from synapse.api.errors import StoreError
|
||||||
from synapse.storage.database import DatabasePool
|
from synapse.storage.database import DatabasePool
|
||||||
from synapse.storage.databases.main.state_deltas import StateDeltasStore
|
from synapse.storage.databases.main.state_deltas import StateDeltasStore
|
||||||
@ -590,7 +590,7 @@ class StatsStore(StateDeltasStore):
|
|||||||
room_state["canonical_alias"] = event.content.get("alias")
|
room_state["canonical_alias"] = event.content.get("alias")
|
||||||
elif event.type == EventTypes.Create:
|
elif event.type == EventTypes.Create:
|
||||||
room_state["is_federatable"] = (
|
room_state["is_federatable"] = (
|
||||||
event.content.get("m.federate", True) is True
|
event.content.get(EventContentFields.FEDERATE, True) is True
|
||||||
)
|
)
|
||||||
|
|
||||||
await self.update_room_state(room_id, room_state)
|
await self.update_room_state(room_id, room_state)
|
||||||
|
Loading…
Reference in New Issue
Block a user