forked from MirrorHub/synapse
config,handlers/_base: added homeserver config for what state is included in a room invite
Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
This commit is contained in:
parent
ce82b9e48f
commit
5fc59f009c
3 changed files with 44 additions and 7 deletions
40
synapse/config/api.py
Normal file
40
synapse/config/api.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# Copyright 2015, 2016 OpenMarket Ltd
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
from ._base import Config
|
||||||
|
|
||||||
|
from synapse.api.constants import EventTypes
|
||||||
|
|
||||||
|
|
||||||
|
class ApiConfig(Config):
|
||||||
|
|
||||||
|
def read_config(self, config):
|
||||||
|
self.room_invite_state_types = config.get("room_invite_state_types", [
|
||||||
|
EventTypes.JoinRules,
|
||||||
|
EventTypes.CanonicalAlias,
|
||||||
|
EventTypes.RoomAvatar,
|
||||||
|
EventTypes.Name,
|
||||||
|
])
|
||||||
|
|
||||||
|
def default_config(cls, **kwargs):
|
||||||
|
return """\
|
||||||
|
## API Configuration ##
|
||||||
|
|
||||||
|
# A list of event types that will be included in the room_invite_state
|
||||||
|
room_invite_state_types:
|
||||||
|
- "{JoinRules}"
|
||||||
|
- "{CanonicalAlias}"
|
||||||
|
- "{RoomAvatar}"
|
||||||
|
- "{Name}"
|
||||||
|
""".format(**vars(EventTypes))
|
|
@ -23,6 +23,7 @@ from .captcha import CaptchaConfig
|
||||||
from .voip import VoipConfig
|
from .voip import VoipConfig
|
||||||
from .registration import RegistrationConfig
|
from .registration import RegistrationConfig
|
||||||
from .metrics import MetricsConfig
|
from .metrics import MetricsConfig
|
||||||
|
from .api import ApiConfig
|
||||||
from .appservice import AppServiceConfig
|
from .appservice import AppServiceConfig
|
||||||
from .key import KeyConfig
|
from .key import KeyConfig
|
||||||
from .saml2 import SAML2Config
|
from .saml2 import SAML2Config
|
||||||
|
@ -32,7 +33,7 @@ from .password import PasswordConfig
|
||||||
|
|
||||||
class HomeServerConfig(TlsConfig, ServerConfig, DatabaseConfig, LoggingConfig,
|
class HomeServerConfig(TlsConfig, ServerConfig, DatabaseConfig, LoggingConfig,
|
||||||
RatelimitConfig, ContentRepositoryConfig, CaptchaConfig,
|
RatelimitConfig, ContentRepositoryConfig, CaptchaConfig,
|
||||||
VoipConfig, RegistrationConfig, MetricsConfig,
|
VoipConfig, RegistrationConfig, MetricsConfig, ApiConfig,
|
||||||
AppServiceConfig, KeyConfig, SAML2Config, CasConfig,
|
AppServiceConfig, KeyConfig, SAML2Config, CasConfig,
|
||||||
PasswordConfig,):
|
PasswordConfig,):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -333,12 +333,8 @@ class BaseHandler(object):
|
||||||
"sender": e.sender,
|
"sender": e.sender,
|
||||||
}
|
}
|
||||||
for k, e in context.current_state.items()
|
for k, e in context.current_state.items()
|
||||||
if e.type in (
|
if e.type in self.hs.config.room_invite_state_types
|
||||||
EventTypes.JoinRules,
|
or is_inviter_member_event(e)
|
||||||
EventTypes.CanonicalAlias,
|
|
||||||
EventTypes.RoomAvatar,
|
|
||||||
EventTypes.Name,
|
|
||||||
) or is_inviter_member_event(e)
|
|
||||||
]
|
]
|
||||||
|
|
||||||
invitee = UserID.from_string(event.state_key)
|
invitee = UserID.from_string(event.state_key)
|
||||||
|
|
Loading…
Reference in a new issue