liquid_feedback_frontend
view app/main/index/_action/reset_password.lua @ 1858:3d1f0464a3ea
Handle missing ldap.member.allowed function
| author | bsw | 
|---|---|
| date | Tue Sep 20 17:35:29 2022 +0200 (2022-09-20) | 
| parents | 1c329811e47f | 
| children | 
 line source
     1 trace.disable()
     3 if config.hide_reset_password then
     4   return
     5 end
     7 local secret = param.get("secret")
     9 if not secret then
    11   local member = Member:new_selector()
    12     :add_where{ "login = ?", param.get("login") }
    13     :add_where("password_reset_secret ISNULL OR password_reset_secret_expiry < now()")
    14     :optional_object_mode()
    15     :exec()
    17   if member then
    18     if not member.notify_email then
    19       slot.put_into("error", _"Sorry, but there is not confirmed email address for your account. Please contact the administrator or support.")
    20       return false
    21     end
    22     member:send_password_reset_mail()
    23   end
    25   slot.put_into("notice", _"Your request has been processed.")
    27 else
    28   local member = Member:new_selector()
    29     :add_where{ "password_reset_secret = ?", secret }
    30     :add_where{ "password_reset_secret_expiry > now()" }
    31     :optional_object_mode()
    32     :exec()
    34   if not member then
    35     slot.put_into("error", _"Reset code is invalid!")
    36     return false
    37   end
    39   local password1 = param.get("password1")
    40   local password2 = param.get("password2")
    42   if password1 ~= password2 then
    43     slot.put_into("error", _"Passwords don't match!")
    44     return false
    45   end
    47   if #password1 < 8 then
    48     slot.put_into("error", _"Passwords must consist of at least 8 characters!")
    49     return false
    50   end
    52   member:set_password(password1)
    53   member:save()
    55   slot.put_into("notice", _"Password has been reset successfully")
    57 end
