forked from MirrorHub/synapse
Disable publishing to room list when its disabled
This commit is contained in:
parent
2c90422146
commit
cc197a61a1
1 changed files with 8 additions and 0 deletions
|
@ -44,6 +44,7 @@ class DirectoryHandler(BaseHandler):
|
||||||
self.appservice_handler = hs.get_application_service_handler()
|
self.appservice_handler = hs.get_application_service_handler()
|
||||||
self.event_creation_handler = hs.get_event_creation_handler()
|
self.event_creation_handler = hs.get_event_creation_handler()
|
||||||
self.config = hs.config
|
self.config = hs.config
|
||||||
|
self.enable_room_list_search = hs.config.enable_room_list_search
|
||||||
|
|
||||||
self.federation = hs.get_federation_client()
|
self.federation = hs.get_federation_client()
|
||||||
hs.get_federation_registry().register_query_handler(
|
hs.get_federation_registry().register_query_handler(
|
||||||
|
@ -411,6 +412,13 @@ class DirectoryHandler(BaseHandler):
|
||||||
if visibility not in ["public", "private"]:
|
if visibility not in ["public", "private"]:
|
||||||
raise SynapseError(400, "Invalid visibility setting")
|
raise SynapseError(400, "Invalid visibility setting")
|
||||||
|
|
||||||
|
if visibility == "public" and not self.enable_room_list_search:
|
||||||
|
# The room list has been disabled.
|
||||||
|
raise AuthError(
|
||||||
|
403,
|
||||||
|
"This user is not permitted to publish rooms to the room list"
|
||||||
|
)
|
||||||
|
|
||||||
room = yield self.store.get_room(room_id)
|
room = yield self.store.get_room(room_id)
|
||||||
if room is None:
|
if room is None:
|
||||||
raise SynapseError(400, "Unknown room")
|
raise SynapseError(400, "Unknown room")
|
||||||
|
|
Loading…
Reference in a new issue