@@ -152,81 +152,6 @@ async def on_POST(self, request):
152
152
return 200 , ret
153
153
154
154
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
-
230
155
class PasswordRestServlet (RestServlet ):
231
156
PATTERNS = client_patterns ("/account/password$" )
232
157
@@ -938,7 +863,6 @@ async def on_GET(self, request):
938
863
939
864
def register_servlets (hs , http_server ):
940
865
EmailPasswordRequestTokenRestServlet (hs ).register (http_server )
941
- PasswordResetSubmitTokenServlet (hs ).register (http_server )
942
866
PasswordRestServlet (hs ).register (http_server )
943
867
DeactivateAccountRestServlet (hs ).register (http_server )
944
868
EmailThreepidRequestTokenRestServlet (hs ).register (http_server )
0 commit comments