Changes for page Forgot your password?
Last modified by wiki admin on 2021/11/22 20:38
edited by wiki admin
on 2020/06/12 14:27
on 2020/06/12 14:27
edited by wiki admin
on 2021/11/22 20:38
on 2021/11/22 20:38
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-administration-ui/12.10.10]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -14,7 +14,8 @@ 14 14 ## The name of the class used for storing password reset verification data. 15 15 #set ($verifClass = 'XWiki.ResetPasswordRequestClass') 16 16 #set ($userName = "$!request.get('u')") 17 -#if ($userName == '')## First step, display the form requesting the username 17 +## First step, display the form requesting the username 18 +#if ($userName == '' || !$services.csrf.isTokenValid($request.form_token)) 18 18 {{translation key="xe.admin.passwordReset.instructions"/}} 19 19 20 20 {{html}} ... ... @@ -44,21 +44,10 @@ 44 44 #end 45 45 #set ($userObj = $userDoc.getObject('XWiki.XWikiUsers')) 46 46 #end 47 - #if (!$userObj) 48 - 49 - {{warning}}$services.localization.render('xe.admin.passwordReset.error.noUser', ["//${escapetool.xml($userName)}//"]){{/warning}} 50 - 51 - #elseif ($userDoc.getObject('XWiki.LDAPProfileClass')) 52 - 53 - {{warning}}$services.localization.render('xe.admin.passwordReset.error.ldapUser', ["//${escapetool.xml($userName)}//"]){{/warning}} 54 - 55 - #else 48 + #set ($errorDisplayed = false) 49 + #if ($userObj && !$userDoc.getObject('XWiki.LDAPProfileClass')) 56 56 #set ($userEmail = $userObj.getProperty('email').value) 57 - #if ("$!userEmail" == '') 58 - 59 - {{error}}{{translation key="xe.admin.passwordReset.error.noEmail"/}}{{/error}} 60 - 61 - #else 51 + #if ("$!userEmail" != '') 62 62 ## Find the object that will hold the verification string 63 63 #set ($verifObj = '') 64 64 #set ($verifObj = $userDoc.getObject($verifClass, true)) ... ... @@ -71,16 +71,16 @@ 71 71 #set ($userDocRef = $escapetool.url($services.model.serialize($userDoc.documentReference, 'default'))) 72 72 #set ($passwordResetURL = $xwiki.getDocument("XWiki.ResetPasswordComplete").getExternalURL('view', "u=${userDocRef}&v=${verifStr}")) 73 73 ## Send the email 74 - #set ($from = $services.mailsender.configuration.fromAddress) 64 + #set ($from = $services.mail.sender.configuration.fromAddress) 75 75 #if ("$!from" == '') 76 76 #set ($from = "no-reply@${request.serverName}") 77 77 #end 78 78 #set ($mailTemplateReference = $services.model.createDocumentReference('', 'XWiki', 'ResetPasswordMailContent')) 79 79 #set ($mailParameters = {'from' : $from, 'to' : $userEmail, 'language' : $xcontext.locale}) 80 - #set ($message = $services.mailsender.createMessage('template', $mailTemplateReference, $mailParameters)) 70 + #set ($message = $services.mail.sender.createMessage('template', $mailTemplateReference, $mailParameters)) 81 81 #set ($discard = $message.setType('Reset Password')) 82 82 #macro (displayError $text) 83 - 73 + #set ($errorDisplayed = true) 84 84 {{html}} 85 85 <div class="xwikirenderingerror" title="Click to get more details about the error" style="cursor: pointer;"> 86 86 $services.localization.render('xe.admin.passwordReset.error.emailFailed') ... ... @@ -92,28 +92,29 @@ 92 92 93 93 #end 94 94 ## Check for an error constructing the message! 95 - #if ($services.mailsender.lastError) 96 - #displayError($exceptiontool.getStackTrace($services.mailsender.lastError)) 85 + #if ($services.mail.sender.lastError) 86 + #displayError($exceptiontool.getStackTrace($services.mail.sender.lastError)) 97 97 #else 98 98 ## Send the message and wait for it to be sent or for any error to be raised. 99 - #set ($mailResult = $services.mailsender.send([$message], 'database')) 89 + #set ($mailResult = $services.mail.sender.send([$message], 'database')) 100 100 ## Check for errors during the send 101 - #if ($services.mailsender.lastError) 102 - #displayError($exceptiontool.getStackTrace($services.mailsender.lastError)) 91 + #if ($services.mail.sender.lastError) 92 + #displayError($exceptiontool.getStackTrace($services.mail.sender.lastError)) 103 103 #else 104 104 #set ($failedMailStatuses = $mailResult.statusResult.getAllErrors()) 105 105 #if ($failedMailStatuses.hasNext()) 106 106 #set ($mailStatus = $failedMailStatuses.next()) 107 107 #displayError($mailStatus.errorDescription) 108 - #else 109 - 110 - {{info}}$services.localization.render('xe.admin.passwordReset.emailSent', ["$userDoc.display('email', $userObj)"]){{/info}} 111 - 112 112 #end 113 113 #end 114 114 #end 115 115 #end 116 116 #end 103 + #if (!$errorDisplayed) 104 + 105 + {{info}}$services.localization.render('xe.admin.passwordReset.emailSentToUsername', ["$escapetool.xml(${userName})"]){{/info}} 106 + 107 + #end 117 117 [[{{translation key="xe.admin.passwordReset.error.retry"/}}>>$doc.fullName]] | [[{{translation key="xe.admin.passwordReset.error.recoverUsername"/}}>>ForgotUsername]] | [[{{translation key="xe.admin.passwordReset.login"/}}>>path:$xwiki.getURL('XWiki.XWikiLogin', 'login')]] 118 118 #end 119 119 ## Clear private variables, so that they cannot be accessed from the rest of the page (comments, panels...)