@@ -152,81 +152,6 @@ async def on_POST(self, request):
152152 return 200 , ret
153153
154154
155- class PasswordResetSubmitTokenServlet (RestServlet ):
156- """Handles 3PID validation token submission"""
157-
158- PATTERNS = client_patterns (
159- "/password_reset/(?P<medium>[^/]*)/submit_token$" , releases = (), unstable = True
160- )
161-
162- def __init__ (self , hs ):
163- """
164- Args:
165- hs (synapse.server.HomeServer): server
166- """
167- super (PasswordResetSubmitTokenServlet , self ).__init__ ()
168- self .hs = hs
169- self .auth = hs .get_auth ()
170- self .config = hs .config
171- self .clock = hs .get_clock ()
172- self .store = hs .get_datastore ()
173- if self .config .threepid_behaviour_email == ThreepidBehaviour .LOCAL :
174- self ._failure_email_template = (
175- self .config .email_password_reset_template_failure_html
176- )
177-
178- async def on_GET (self , request , medium ):
179- # We currently only handle threepid token submissions for email
180- if medium != "email" :
181- raise SynapseError (
182- 400 , "This medium is currently not supported for password resets"
183- )
184- if self .config .threepid_behaviour_email == ThreepidBehaviour .OFF :
185- if self .config .local_threepid_handling_disabled_due_to_email_config :
186- logger .warning (
187- "Password reset emails have been disabled due to lack of an email config"
188- )
189- raise SynapseError (
190- 400 , "Email-based password resets are disabled on this server"
191- )
192-
193- sid = parse_string (request , "sid" , required = True )
194- token = parse_string (request , "token" , required = True )
195- client_secret = parse_string (request , "client_secret" , required = True )
196- assert_valid_client_secret (client_secret )
197-
198- # Attempt to validate a 3PID session
199- try :
200- # Mark the session as valid
201- next_link = await self .store .validate_threepid_session (
202- sid , client_secret , token , self .clock .time_msec ()
203- )
204-
205- # Perform a 302 redirect if next_link is set
206- if next_link :
207- if next_link .startswith ("file:///" ):
208- logger .warning (
209- "Not redirecting to next_link as it is a local file: address"
210- )
211- else :
212- request .setResponseCode (302 )
213- request .setHeader ("Location" , next_link )
214- finish_request (request )
215- return None
216-
217- # Otherwise show the success template
218- html = self .config .email_password_reset_template_success_html_content
219- status_code = 200
220- except ThreepidValidationError as e :
221- status_code = e .code
222-
223- # Show a failure page with a reason
224- template_vars = {"failure_reason" : e .msg }
225- html = self ._failure_email_template .render (** template_vars )
226-
227- respond_with_html (request , status_code , html )
228-
229-
230155class PasswordRestServlet (RestServlet ):
231156 PATTERNS = client_patterns ("/account/password$" )
232157
@@ -938,7 +863,6 @@ async def on_GET(self, request):
938863
939864def register_servlets (hs , http_server ):
940865 EmailPasswordRequestTokenRestServlet (hs ).register (http_server )
941- PasswordResetSubmitTokenServlet (hs ).register (http_server )
942866 PasswordRestServlet (hs ).register (http_server )
943867 DeactivateAccountRestServlet (hs ).register (http_server )
944868 EmailThreepidRequestTokenRestServlet (hs ).register (http_server )
0 commit comments