From version < 2.1
edited by superadmin
on 2021/06/22 16:59
To version 1.1 >
edited by superadmin
on 2021/06/11 09:24
Change comment: Install extension [org.xwiki.platform:xwiki-platform-administration-ui-9.4]

Summary

Details

Page properties
Content
... ... @@ -1,85 +1,31 @@
1 1  {{velocity}}
2 2  #set($email = "$!request.get('e')")
3 -#if($email == '' || !$services.csrf.isTokenValid($request.form_token))
3 +#if($email == '')
4 4  {{translation key="xe.admin.forgotUsername.instructions"/}}
5 5  
6 6  {{html}}
7 7   <form method="post" action="$doc.getURL()" class="xformInline">
8 - <div>
9 - <label for="e">$services.localization.render('xe.admin.forgotUsername.email.label')</label>
10 - <input type="text" id="e" name="e"/>
11 - <input type="hidden" name="form_token" value="$services.csrf.getToken()"/>
12 - <span class="buttonwrapper">
13 - <input type="submit" value="$services.localization.render('xe.admin.forgotUsername.submit')" class="button"/>
14 - </span>
15 - </div>
8 + <div><label for="e">$services.localization.render('xe.admin.forgotUsername.email.label')</label> <input type="text" id="e" name="e"/> <span class="buttonwrapper"><input type="submit" value="$services.localization.render('xe.admin.forgotUsername.submit')" class="button"/></span></div>
16 16   </form>
17 17  {{/html}}
18 18  
19 19  #else
20 - #set($query = $services.query.hql(", BaseObject obj, StringProperty prop where obj.name = doc.fullName and obj.className = 'XWiki.XWikiUsers' and prop.id.id = obj.id and prop.id.name = 'email' and LOWER(prop.value) = :email").bindValue('email', $email.toLowerCase()))
21 - #set($results = $query.execute())
22 - ## If local user does not exist check global user
23 - #if($results.size() == 0 && ${xcontext.database} != ${xcontext.mainWikiName})
24 - #set($results = $query.setWiki("${xcontext.mainWikiName}").execute())
25 - #end
26 - #set ($emailError = false)
27 - #if($results.size() != 0)
28 - ## Send the email
29 - #set ($from = $services.mail.sender.configuration.fromAddress)
30 - #if ("$!from" == '')
31 - #set ($from = "no-reply@${request.serverName}")
32 - #end
33 - ## The mail template use $usernames to display the results.
34 - #set ($usernames = $results)
35 - #set ($mailTemplateReference = $services.model.createDocumentReference('', 'XWiki', 'ForgotUsernameMailContent'))
36 - #set ($mailParameters = {'from' : $from, 'to' : $email, 'language' : $xcontext.locale})
37 - #set ($message = $services.mail.sender.createMessage('template', $mailTemplateReference, $mailParameters))
38 - #set ($discard = $message.setType('Forgot Username'))
39 - #macro (displayError $text)
13 + #set($results = $services.query.hql(", BaseObject obj, StringProperty prop where obj.name = doc.fullName and obj.className = 'XWiki.XWikiUsers' and prop.id.id = obj.id and prop.id.name = 'email' and LOWER(prop.value) = ?").bindValues([$email.toLowerCase()]).execute())
14 + #if($results.size() == 0)
15 + {{translation key="xe.admin.forgotUsername.error.noAccount"/}}
40 40  
41 - {{html}}
42 - <div class="xwikirenderingerror" title="Click to get more details about the error" style="cursor: pointer;">
43 - $services.localization.render('xe.admin.forgotUsername.error.emailFailed')
44 - </div>
45 - <div class="xwikirenderingerrordescription hidden">
46 - <pre>${text}</pre>
47 - </div>
48 - {{/html}}
17 + [[{{translation key="xe.admin.forgotUsername.error.retry"/}}>>$doc.fullName]] | [[{{translation key="xe.admin.forgotUsername.login"/}}>>path:${xwiki.getURL('XWiki.XWikiLogin', 'login')}]]
18 + #elseif($results.size() == 1)
19 + $services.localization.render('xe.admin.forgotUsername.result', ["**${results.get(0).substring($results.get(0).indexOf('.')).substring(1)}**"])
49 49  
50 - #set ($emailError = true)
51 - #end
52 - ## Check for an error constructing the message!
53 - #if ($services.mail.sender.lastError)
54 - #displayError($exceptiontool.getStackTrace($services.mail.sender.lastError))
55 - #else
56 - ## Send the message and wait for it to be sent or for any error to be raised.
57 - #set ($mailResult = $services.mail.sender.send([$message], 'database'))
58 - ## Check for errors during the send
59 - #if ($services.mail.sender.lastError)
60 - #displayError($exceptiontool.getStackTrace($services.mail.sender.lastError))
61 - #else
62 - #set ($failedMailStatuses = $mailResult.statusResult.getAllErrors())
63 - #if ($failedMailStatuses.hasNext())
64 - #set ($mailStatus = $failedMailStatuses.next())
65 - #displayError($mailStatus.errorDescription)
66 - #end
67 - #end
68 - #end
21 + [[{{translation key="xe.admin.forgotUsername.login"/}}>>path:${xwiki.getURL('XWiki.XWikiLogin', 'login')}]]
22 + #else
23 + {{translation key="xe.admin.forgotUsername.multipleResults"/}}
24 + #foreach($item in $results)
25 + * **${item.substring($item.indexOf('.')).substring(1)}**
69 69   #end
70 - ## We always display a success message even if there's no user found to avoid disclosing information
71 - ## about the users registered on the wiki.
72 - #if (!$emailError)
73 - {{success}}
74 - $services.localization.render('xe.admin.forgotUsername.emailSent', ["$email"])
75 75  
76 - {{html}}
77 - <div>
78 - <a href="$xwiki.getURL('XWiki.XWikiLogin', 'login', 'loginLink=1')">$services.localization.render('xe.admin.forgotUsername.login')</a>
79 - </div>
80 - {{/html}}
81 -
82 - {{/success}}
83 - #end
28 + [[{{translation key="xe.admin.forgotUsername.login"/}}>>path:${xwiki.getURL('XWiki.XWikiLogin', 'login')}]]
29 + #end
84 84  #end
85 85  {{/velocity}}

Need help?

If you need help with XWiki you can contact: