bicep/matrix: Improve flexibility of username login

It should be possible to log in  with @username:pvv.ntnu.no now
That way client well-known in third party clients will work

it might also fix the weird logout of session issues in element
This commit is contained in:
Daniel Olsen 2023-11-28 05:14:04 +01:00
parent 7ac960c5ff
commit c1c58122ea
1 changed files with 5 additions and 0 deletions

View File

@ -5,6 +5,7 @@ from smtplib import SMTP_SSL as SMTP
import synapse import synapse
from synapse import module_api from synapse import module_api
import re
class SMTPAuthProvider: class SMTPAuthProvider:
def __init__(self, config: dict, api: module_api): def __init__(self, config: dict, api: module_api):
@ -27,6 +28,10 @@ class SMTPAuthProvider:
if login_type != "m.login.password": if login_type != "m.login.password":
return None return None
# Convert `@username:server` to `username`
match = re.match(r'^@([\da-z\-\.=_\/\+]+):[\w\d\.:\[\]]+$', username)
username = match.group(1) if match else username
result = False result = False
with SMTP(self.config["smtp_host"]) as smtp: with SMTP(self.config["smtp_host"]) as smtp:
password = login_dict.get("password") password = login_dict.get("password")