mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-09 00:02:42 -04:00
Factor SSO success handling out of CAS login (#4264)
This is mostly factoring out the post-CAS-login code to somewhere we can reuse it for other SSO flows, but it also fixes the userid mapping while we're at it.
This commit is contained in:
parent
b0c24a66ec
commit
c588b9b9e4
5 changed files with 184 additions and 32 deletions
|
@ -14,7 +14,7 @@
|
|||
# limitations under the License.
|
||||
|
||||
from synapse.api.errors import SynapseError
|
||||
from synapse.types import GroupID, RoomAlias, UserID
|
||||
from synapse.types import GroupID, RoomAlias, UserID, map_username_to_mxid_localpart
|
||||
|
||||
from tests import unittest
|
||||
from tests.utils import TestHomeServer
|
||||
|
@ -79,3 +79,32 @@ class GroupIDTestCase(unittest.TestCase):
|
|||
except SynapseError as exc:
|
||||
self.assertEqual(400, exc.code)
|
||||
self.assertEqual("M_UNKNOWN", exc.errcode)
|
||||
|
||||
|
||||
class MapUsernameTestCase(unittest.TestCase):
|
||||
def testPassThrough(self):
|
||||
self.assertEqual(map_username_to_mxid_localpart("test1234"), "test1234")
|
||||
|
||||
def testUpperCase(self):
|
||||
self.assertEqual(map_username_to_mxid_localpart("tEST_1234"), "test_1234")
|
||||
self.assertEqual(
|
||||
map_username_to_mxid_localpart("tEST_1234", case_sensitive=True),
|
||||
"t_e_s_t__1234",
|
||||
)
|
||||
|
||||
def testSymbols(self):
|
||||
self.assertEqual(
|
||||
map_username_to_mxid_localpart("test=$?_1234"),
|
||||
"test=3d=24=3f_1234",
|
||||
)
|
||||
|
||||
def testLeadingUnderscore(self):
|
||||
self.assertEqual(map_username_to_mxid_localpart("_test_1234"), "=5ftest_1234")
|
||||
|
||||
def testNonAscii(self):
|
||||
# this should work with either a unicode or a bytes
|
||||
self.assertEqual(map_username_to_mxid_localpart(u'têst'), "t=c3=aast")
|
||||
self.assertEqual(
|
||||
map_username_to_mxid_localpart(u'têst'.encode('utf-8')),
|
||||
"t=c3=aast",
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue