mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-21 07:34:10 -04:00
Implement a username picker for synapse (#8942)
The final part (for now) of my work to implement a username picker in synapse itself. The idea is that we allow `UsernameMappingProvider`s to return `localpart=None`, in which case, rather than redirecting the browser back to the client, we redirect to a username-picker resource, which allows the user to enter a username. We *then* complete the SSO flow (including doing the client permission checks). The static resources for the username picker itself (in https://github.com/matrix-org/synapse/tree/rav/username_picker/synapse/res/username_picker) are essentially lifted wholesale from https://github.com/matrix-org/matrix-synapse-saml-mozilla/tree/master/matrix_synapse_saml_mozilla/res. As the comment says, we might want to think about making them customisable, but that can be a follow-up. Fixes #8876.
This commit is contained in:
parent
5d4c330ed9
commit
28877fade9
14 changed files with 683 additions and 59 deletions
|
@ -20,7 +20,7 @@ import hmac
|
|||
import inspect
|
||||
import logging
|
||||
import time
|
||||
from typing import Dict, Optional, Type, TypeVar, Union
|
||||
from typing import Dict, Iterable, Optional, Tuple, Type, TypeVar, Union
|
||||
|
||||
from mock import Mock, patch
|
||||
|
||||
|
@ -383,6 +383,9 @@ class HomeserverTestCase(TestCase):
|
|||
federation_auth_origin: str = None,
|
||||
content_is_form: bool = False,
|
||||
await_result: bool = True,
|
||||
custom_headers: Optional[
|
||||
Iterable[Tuple[Union[bytes, str], Union[bytes, str]]]
|
||||
] = None,
|
||||
) -> FakeChannel:
|
||||
"""
|
||||
Create a SynapseRequest at the path using the method and containing the
|
||||
|
@ -405,6 +408,8 @@ class HomeserverTestCase(TestCase):
|
|||
true (the default), will pump the test reactor until the the renderer
|
||||
tells the channel the request is finished.
|
||||
|
||||
custom_headers: (name, value) pairs to add as request headers
|
||||
|
||||
Returns:
|
||||
The FakeChannel object which stores the result of the request.
|
||||
"""
|
||||
|
@ -420,6 +425,7 @@ class HomeserverTestCase(TestCase):
|
|||
federation_auth_origin,
|
||||
content_is_form,
|
||||
await_result,
|
||||
custom_headers,
|
||||
)
|
||||
|
||||
def setup_test_homeserver(self, *args, **kwargs):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue