Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Rename handler modules to drop _handler and config modules to drop _config. #9816

Merged
merged 5 commits into from
Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/9816.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Rename some handlers and config modules to not duplicate the top-level module.
2 changes: 1 addition & 1 deletion docs/sample_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1900,7 +1900,7 @@ saml2_config:
# sub-properties:
#
# module: The class name of a custom mapping module. Default is
# 'synapse.handlers.oidc_handler.JinjaOidcMappingProvider'.
# 'synapse.handlers.oidc.JinjaOidcMappingProvider'.
# See https://github.com/matrix-org/synapse/blob/master/docs/sso_mapping_providers.md#openid-mapping-providers
# for information on implementing a custom mapping provider.
#
Expand Down
4 changes: 2 additions & 2 deletions docs/sso_mapping_providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ A custom mapping provider must specify the following methods:

Synapse has a built-in OpenID mapping provider if a custom provider isn't
specified in the config. It is located at
[`synapse.handlers.oidc_handler.JinjaOidcMappingProvider`](../synapse/handlers/oidc_handler.py).
[`synapse.handlers.oidc.JinjaOidcMappingProvider`](../synapse/handlers/oidc.py).

## SAML Mapping Providers

Expand Down Expand Up @@ -190,4 +190,4 @@ A custom mapping provider must specify the following methods:

Synapse has a built-in SAML mapping provider if a custom provider isn't
specified in the config. It is located at
[`synapse.handlers.saml_handler.DefaultSamlMappingProvider`](../synapse/handlers/saml_handler.py).
[`synapse.handlers.saml.DefaultSamlMappingProvider`](../synapse/handlers/saml.py).
20 changes: 10 additions & 10 deletions synapse/config/_base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,26 @@ from synapse.config import (
auth,
captcha,
cas,
consent_config,
consent,
database,
emailconfig,
experimental,
groups,
jwt_config,
jwt,
key,
logger,
metrics,
oidc_config,
oidc,
password_auth_providers,
push,
ratelimiting,
redis,
registration,
repository,
room_directory,
saml2_config,
saml2,
server,
server_notices_config,
server_notices,
spam_checker,
sso,
stats,
Expand Down Expand Up @@ -65,11 +65,11 @@ class RootConfig:
api: api.ApiConfig
appservice: appservice.AppServiceConfig
key: key.KeyConfig
saml2: saml2_config.SAML2Config
saml2: saml2.SAML2Config
cas: cas.CasConfig
sso: sso.SSOConfig
oidc: oidc_config.OIDCConfig
jwt: jwt_config.JWTConfig
oidc: oidc.OIDCConfig
jwt: jwt.JWTConfig
auth: auth.AuthConfig
email: emailconfig.EmailConfig
worker: workers.WorkerConfig
Expand All @@ -78,9 +78,9 @@ class RootConfig:
spamchecker: spam_checker.SpamCheckerConfig
groups: groups.GroupsConfig
userdirectory: user_directory.UserDirectoryConfig
consent: consent_config.ConsentConfig
consent: consent.ConsentConfig
stats: stats.StatsConfig
servernotices: server_notices_config.ServerNoticesConfig
servernotices: server_notices.ServerNoticesConfig
roomdirectory: room_directory.RoomDirectoryConfig
thirdpartyrules: third_party_event_rules.ThirdPartyRulesConfig
tracer: tracer.TracerConfig
Expand Down
10 changes: 5 additions & 5 deletions synapse/config/homeserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@
from .cache import CacheConfig
from .captcha import CaptchaConfig
from .cas import CasConfig
from .consent_config import ConsentConfig
from .consent import ConsentConfig
from .database import DatabaseConfig
from .emailconfig import EmailConfig
from .experimental import ExperimentalConfig
from .federation import FederationConfig
from .groups import GroupsConfig
from .jwt_config import JWTConfig
from .jwt import JWTConfig
from .key import KeyConfig
from .logger import LoggingConfig
from .metrics import MetricsConfig
from .oidc_config import OIDCConfig
from .oidc import OIDCConfig
from .password_auth_providers import PasswordAuthProviderConfig
from .push import PushConfig
from .ratelimiting import RatelimitConfig
Expand All @@ -39,9 +39,9 @@
from .repository import ContentRepositoryConfig
from .room import RoomConfig
from .room_directory import RoomDirectoryConfig
from .saml2_config import SAML2Config
from .saml2 import SAML2Config
from .server import ServerConfig
from .server_notices_config import ServerNoticesConfig
from .server_notices import ServerNoticesConfig
from .spam_checker import SpamCheckerConfig
from .sso import SSOConfig
from .stats import StatsConfig
Expand Down
File renamed without changes.
7 changes: 6 additions & 1 deletion synapse/config/oidc_config.py → synapse/config/oidc.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@

from ._base import Config, ConfigError, read_file

DEFAULT_USER_MAPPING_PROVIDER = "synapse.handlers.oidc_handler.JinjaOidcMappingProvider"
DEFAULT_USER_MAPPING_PROVIDER = "synapse.handlers.oidc.JinjaOidcMappingProvider"
# The module that JinjaOidcMappingProvider is in was renamed, we want to
# transparently handle both the same.
LEGACY_USER_MAPPING_PROVIDER = "synapse.handlers.oidc_handler.JinjaOidcMappingProvider"
clokep marked this conversation as resolved.
Show resolved Hide resolved


class OIDCConfig(Config):
Expand Down Expand Up @@ -403,6 +406,8 @@ def _parse_oidc_config_dict(
"""
ump_config = oidc_config.get("user_mapping_provider", {})
ump_config.setdefault("module", DEFAULT_USER_MAPPING_PROVIDER)
if ump_config.get("module") == LEGACY_USER_MAPPING_PROVIDER:
ump_config["module"] = DEFAULT_USER_MAPPING_PROVIDER
ump_config.setdefault("config", {})

(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@

logger = logging.getLogger(__name__)

DEFAULT_USER_MAPPING_PROVIDER = (
DEFAULT_USER_MAPPING_PROVIDER = "synapse.handlers.saml.DefaultSamlMappingProvider"
# The module that DefaultSamlMappingProvider is in was renamed, we want to
# transparently handle both the same.
LEGACY_USER_MAPPING_PROVIDER = (
"synapse.handlers.saml_handler.DefaultSamlMappingProvider"
)

Expand Down Expand Up @@ -97,6 +100,8 @@ def read_config(self, config, **kwargs):

# Use the default user mapping provider if not set
ump_dict.setdefault("module", DEFAULT_USER_MAPPING_PROVIDER)
if ump_dict.get("module") == LEGACY_USER_MAPPING_PROVIDER:
ump_dict["module"] = DEFAULT_USER_MAPPING_PROVIDER

# Ensure a config is present
ump_dict["config"] = ump_dict.get("config") or {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@
from twisted.web.http_headers import Headers

from synapse.config import ConfigError
from synapse.config.oidc_config import (
OidcProviderClientSecretJwtKey,
OidcProviderConfig,
)
from synapse.config.oidc import OidcProviderClientSecretJwtKey, OidcProviderConfig
from synapse.handlers.sso import MappingException, UserAttributes
from synapse.http.site import SynapseRequest
from synapse.logging.context import make_deferred_yieldable
Expand Down
2 changes: 1 addition & 1 deletion synapse/rest/client/v2_alpha/register.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
)
from synapse.config import ConfigError
from synapse.config.captcha import CaptchaConfig
from synapse.config.consent_config import ConsentConfig
from synapse.config.consent import ConsentConfig
from synapse.config.emailconfig import ThreepidBehaviour
from synapse.config.ratelimiting import FederationRateLimitConfig
from synapse.config.registration import RegistrationConfig
Expand Down
10 changes: 5 additions & 5 deletions synapse/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
from synapse.handlers.admin import AdminHandler
from synapse.handlers.appservice import ApplicationServicesHandler
from synapse.handlers.auth import AuthHandler, MacaroonGenerator
from synapse.handlers.cas_handler import CasHandler
from synapse.handlers.cas import CasHandler
from synapse.handlers.deactivate_account import DeactivateAccountHandler
from synapse.handlers.device import DeviceHandler, DeviceWorkerHandler
from synapse.handlers.devicemessage import DeviceMessageHandler
Expand Down Expand Up @@ -145,8 +145,8 @@
if TYPE_CHECKING:
from txredisapi import RedisProtocol

from synapse.handlers.oidc_handler import OidcHandler
from synapse.handlers.saml_handler import SamlHandler
from synapse.handlers.oidc import OidcHandler
from synapse.handlers.saml import SamlHandler


T = TypeVar("T", bound=Callable[..., Any])
Expand Down Expand Up @@ -696,13 +696,13 @@ def get_cas_handler(self) -> CasHandler:

@cache_in_self
def get_saml_handler(self) -> "SamlHandler":
from synapse.handlers.saml_handler import SamlHandler
from synapse.handlers.saml import SamlHandler

return SamlHandler(self)

@cache_in_self
def get_oidc_handler(self) -> "OidcHandler":
from synapse.handlers.oidc_handler import OidcHandler
from synapse.handlers.oidc import OidcHandler

return OidcHandler(self)

Expand Down
2 changes: 1 addition & 1 deletion tests/handlers/test_cas.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.
from unittest.mock import Mock

from synapse.handlers.cas_handler import CasResponse
from synapse.handlers.cas import CasResponse

from tests.test_utils import simple_async_mock
from tests.unittest import HomeserverTestCase, override_config
Expand Down
8 changes: 4 additions & 4 deletions tests/handlers/test_oidc.py
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ def test_callback(self):
self.assertRenderedError("fetch_error")

# Handle code exchange failure
from synapse.handlers.oidc_handler import OidcError
from synapse.handlers.oidc import OidcError

self.provider._exchange_code = simple_async_mock(
raises=OidcError("invalid_request")
Expand Down Expand Up @@ -583,7 +583,7 @@ def test_exchange_code(self):
body=b'{"error": "foo", "error_description": "bar"}',
)
)
from synapse.handlers.oidc_handler import OidcError
from synapse.handlers.oidc import OidcError

exc = self.get_failure(self.provider._exchange_code(code), OidcError)
self.assertEqual(exc.value.error, "foo")
Expand Down Expand Up @@ -1126,7 +1126,7 @@ def _generate_oidc_session_token(
client_redirect_url: str,
ui_auth_session_id: str = "",
) -> str:
from synapse.handlers.oidc_handler import OidcSessionData
from synapse.handlers.oidc import OidcSessionData

return self.handler._token_generator.generate_oidc_session_token(
state=state,
Expand All @@ -1152,7 +1152,7 @@ async def _make_callback_with_userinfo(
userinfo: the OIDC userinfo dict
client_redirect_url: the URL to redirect to on success.
"""
from synapse.handlers.oidc_handler import OidcSessionData
from synapse.handlers.oidc import OidcSessionData

handler = hs.get_oidc_handler()
provider = handler._providers["oidc"]
Expand Down