liquid_feedback_frontend
view app/main/index/_action/send_login.lua @ 989:5a712ec1a7f1
Added support for login name recovery by email address
| author | bsw |
|---|---|
| date | Sat Apr 20 18:51:28 2013 +0200 (2013-04-20) |
| parents | |
| children | 77873f08d94f |
line source
1 --trace.disable()
3 local email = param.get("email")
5 local members = Member:new_selector()
6 :add_where{ "notify_email = ? OR notify_email_unconfirmed = ?", email, email }
7 :add_where("login_recovery_expiry ISNULL OR login_recovery_expiry < now()")
8 :exec()
10 if #members < 1 then
11 return
12 end
14 local logins = {}
16 for i, member in ipairs(members) do
17 local expiry = db:query("SELECT now() + '7 days'::interval as expiry", "object").expiry
18 member.login_recovery_expiry = expiry
19 member:save()
20 logins[#logins+1] = member.login
21 end
23 local content = slot.use_temporary(function()
24 slot.put(_"Hello,\n\n")
25 slot.put(_"the following login is connected to this email address:\n\n")
26 for i, login in ipairs(logins) do
27 slot.put(_"Login-Name: " .. login .. "\n")
28 end
29 end)
31 trace.debug(content)
32 if true then return end
34 local success = net.send_mail{
35 envelope_from = config.mail_envelope_from,
36 from = config.mail_from,
37 reply_to = config.mail_reply_to,
38 to = email,
39 subject = config.mail_subject_prefix .. _"Login name request",
40 content_type = "text/plain; charset=UTF-8",
41 content = content
42 }
