5151logger = logging .getLogger (__name__ )
5252
5353
54- SUCCESS_TEMPLATE = """
55- <html>
56- <head>
57- <title>Success!</title>
58- <meta name='viewport' content='width=device-width, initial-scale=1,
59- user-scalable=no, minimum-scale=1.0, maximum-scale=1.0'>
60- <link rel="stylesheet" href="/_matrix/static/client/register/style.css">
61- <script>
62- if (window.onAuthDone) {
63- window.onAuthDone();
64- } else if (window.opener && window.opener.postMessage) {
65- window.opener.postMessage("authDone", "*");
66- }
67- </script>
68- </head>
69- <body>
70- <div>
71- <p>Thank you</p>
72- <p>You may now close this window and return to the application</p>
73- </div>
74- </body>
75- </html>
76- """
77-
78-
7954class AuthHandler (BaseHandler ):
8055 SESSION_EXPIRE_MS = 48 * 60 * 60 * 1000
8156
@@ -159,6 +134,11 @@ def __init__(self, hs):
159134 self ._sso_auth_confirm_template = load_jinja2_templates (
160135 hs .config .sso_redirect_confirm_template_dir , ["sso_auth_confirm.html" ],
161136 )[0 ]
137+ # The following template is shown after a successful user interactive
138+ # authentication session. It tells the user they can close the window.
139+ self ._sso_auth_success_template = hs .config .sso_auth_success_template
140+ # The following template is shown during the SSO authentication process if
141+ # the account is deactivated.
162142 self ._sso_account_deactivated_template = (
163143 hs .config .sso_account_deactivated_template
164144 )
@@ -1080,7 +1060,7 @@ def complete_sso_ui_auth(
10801060 self ._save_session (sess )
10811061
10821062 # Render the HTML and return.
1083- html_bytes = SUCCESS_TEMPLATE . encode ("utf8 " )
1063+ html_bytes = self . _sso_auth_success_template . encode ("utf-8 " )
10841064 request .setResponseCode (200 )
10851065 request .setHeader (b"Content-Type" , b"text/html; charset=utf-8" )
10861066 request .setHeader (b"Content-Length" , b"%d" % (len (html_bytes ),))
@@ -1106,12 +1086,12 @@ async def complete_sso_login(
11061086 # flow.
11071087 deactivated = await self .store .get_user_deactivated_status (registered_user_id )
11081088 if deactivated :
1109- html = self ._sso_account_deactivated_template .encode ("utf-8" )
1089+ html_bytes = self ._sso_account_deactivated_template .encode ("utf-8" )
11101090
11111091 request .setResponseCode (403 )
11121092 request .setHeader (b"Content-Type" , b"text/html; charset=utf-8" )
1113- request .setHeader (b"Content-Length" , b"%d" % (len (html ),))
1114- request .write (html )
1093+ request .setHeader (b"Content-Length" , b"%d" % (len (html_bytes ),))
1094+ request .write (html_bytes )
11151095 finish_request (request )
11161096 return
11171097
@@ -1153,16 +1133,16 @@ def _complete_sso_login(
11531133 # URL we redirect users to.
11541134 redirect_url_no_params = client_redirect_url .split ("?" )[0 ]
11551135
1156- html = self ._sso_redirect_confirm_template .render (
1136+ html_bytes = self ._sso_redirect_confirm_template .render (
11571137 display_url = redirect_url_no_params ,
11581138 redirect_url = redirect_url ,
11591139 server_name = self ._server_name ,
11601140 ).encode ("utf-8" )
11611141
11621142 request .setResponseCode (200 )
11631143 request .setHeader (b"Content-Type" , b"text/html; charset=utf-8" )
1164- request .setHeader (b"Content-Length" , b"%d" % (len (html ),))
1165- request .write (html )
1144+ request .setHeader (b"Content-Length" , b"%d" % (len (html_bytes ),))
1145+ request .write (html_bytes )
11661146 finish_request (request )
11671147
11681148 @staticmethod
0 commit comments