liquid_feedback_frontend

annotate app/main/index/_action/send_login.lua @ 1857:1c329811e47f

Allow to hide password reset and login recover feature
author bsw
date Sat Sep 17 21:32:10 2022 +0200 (2022-09-17)
parents 130eed8f7a79
children
rev   line source
bsw@1003 1 trace.disable()
bsw@989 2
bsw@1857 3 if config.hide_recover_login then
bsw@1857 4 return
bsw@1857 5 end
bsw@1857 6
bsw@989 7 local email = param.get("email")
bsw@989 8
bsw@989 9 local members = Member:new_selector()
bsw@990 10 :add_where{ "split_part(notify_email, '@', 1) = split_part(?, '@', 1)", email }
bsw@990 11 :add_where{ "lower(split_part(notify_email, '@', 2)) = lower(split_part(?, '@', 2))", email }
bsw@989 12 :add_where("login_recovery_expiry ISNULL OR login_recovery_expiry < now()")
bsw@989 13 :exec()
bsw@989 14
bsw@1003 15 if #members > 0 then
bsw@1003 16
bsw@1003 17 local logins = {}
bsw@1003 18
bsw@1003 19 for i, member in ipairs(members) do
bsw@1003 20 local expiry = db:query("SELECT now() + '7 days'::interval as expiry", "object").expiry
bsw@1003 21 member.login_recovery_expiry = expiry
bsw@1003 22 member:save()
bsw@1003 23 logins[#logins+1] = member.login
bsw@1003 24 end
bsw@1003 25
bsw@1003 26 local content = slot.use_temporary(function()
bsw@1003 27 slot.put(_"Hello,\n\n")
bsw@1003 28 slot.put(_"the following login is connected to this email address:\n\n")
bsw@1003 29 for i, login in ipairs(logins) do
bsw@1003 30 slot.put(_"Login-Name: " .. login .. "\n")
bsw@1003 31 end
bsw@1003 32 end)
bsw@1003 33
bsw@1003 34 local success = net.send_mail{
bsw@1003 35 envelope_from = config.mail_envelope_from,
bsw@1003 36 from = config.mail_from,
bsw@1003 37 reply_to = config.mail_reply_to,
bsw@1003 38 to = email,
bsw@1003 39 subject = config.mail_subject_prefix .. _"Login name request",
bsw@1003 40 content_type = "text/plain; charset=UTF-8",
bsw@1003 41 content = content
bsw@1003 42 }
bsw@1003 43
bsw@989 44 end
bsw@989 45
bsw@990 46 slot.put_into("notice", _"Your request has been processed.")

Impressum / About Us