|
65 | 65 | from synapse.http.servlet import parse_string |
66 | 66 | from synapse.http.site import SynapseRequest |
67 | 67 | from synapse.logging.context import make_deferred_yieldable |
| 68 | +from synapse.module_api import ModuleApi |
68 | 69 | from synapse.types import JsonDict, UserID, map_username_to_mxid_localpart |
69 | 70 | from synapse.util import Clock, json_decoder |
70 | 71 | from synapse.util.caches.cached_call import RetryOnExceptionCachedCall |
@@ -421,9 +422,19 @@ def __init__( |
421 | 422 | # from the IdP's jwks_uri, if required. |
422 | 423 | self._jwks = RetryOnExceptionCachedCall(self._load_jwks) |
423 | 424 |
|
424 | | - self._user_mapping_provider = provider.user_mapping_provider_class( |
425 | | - provider.user_mapping_provider_config |
| 425 | + user_mapping_provider_init_method = ( |
| 426 | + provider.user_mapping_provider_class.__init__ |
426 | 427 | ) |
| 428 | + if len(inspect.signature(user_mapping_provider_init_method).parameters) == 3: |
| 429 | + self._user_mapping_provider = provider.user_mapping_provider_class( |
| 430 | + provider.user_mapping_provider_config, |
| 431 | + ModuleApi(hs, hs.get_auth_handler()), |
| 432 | + ) |
| 433 | + else: |
| 434 | + self._user_mapping_provider = provider.user_mapping_provider_class( |
| 435 | + provider.user_mapping_provider_config, |
| 436 | + ) |
| 437 | + |
427 | 438 | self._skip_verification = provider.skip_verification |
428 | 439 | self._allow_existing_users = provider.allow_existing_users |
429 | 440 |
|
@@ -1583,7 +1594,7 @@ class JinjaOidcMappingProvider(OidcMappingProvider[JinjaOidcMappingConfig]): |
1583 | 1594 | This is the default mapping provider. |
1584 | 1595 | """ |
1585 | 1596 |
|
1586 | | - def __init__(self, config: JinjaOidcMappingConfig): |
| 1597 | + def __init__(self, config: JinjaOidcMappingConfig, module_api: ModuleApi): |
1587 | 1598 | self._config = config |
1588 | 1599 |
|
1589 | 1600 | @staticmethod |
|
0 commit comments