liquid_feedback_frontend
annotate app/main/index/_action/reset_password.lua @ 1309:32cc544d5a5b
Cumulative patch for upcoming frontend version 4
author | bsw/jbe |
---|---|
date | Sun Jul 15 14:07:29 2018 +0200 (2018-07-15) |
parents | e7fc3fed1593 |
children | 1c329811e47f |
rev | line source |
---|---|
bsw@224 | 1 trace.disable() |
bsw@224 | 2 |
bsw/jbe@6 | 3 local secret = param.get("secret") |
bsw/jbe@6 | 4 |
bsw/jbe@6 | 5 if not secret then |
bsw/jbe@6 | 6 |
bsw/jbe@6 | 7 local member = Member:new_selector() |
bsw/jbe@6 | 8 :add_where{ "login = ?", param.get("login") } |
bsw/jbe@6 | 9 :add_where("password_reset_secret ISNULL OR password_reset_secret_expiry < now()") |
bsw/jbe@6 | 10 :optional_object_mode() |
bsw/jbe@6 | 11 :exec() |
bsw/jbe@6 | 12 |
bsw/jbe@6 | 13 if member then |
bsw/jbe@6 | 14 if not member.notify_email then |
bsw/jbe@6 | 15 slot.put_into("error", _"Sorry, but there is not confirmed email address for your account. Please contact the administrator or support.") |
bsw/jbe@6 | 16 return false |
bsw/jbe@6 | 17 end |
bsw@1231 | 18 member:send_password_reset_mail() |
bsw/jbe@6 | 19 end |
bsw/jbe@6 | 20 |
bsw@990 | 21 slot.put_into("notice", _"Your request has been processed.") |
bsw/jbe@6 | 22 |
bsw/jbe@6 | 23 else |
bsw/jbe@6 | 24 local member = Member:new_selector() |
bsw/jbe@6 | 25 :add_where{ "password_reset_secret = ?", secret } |
bsw/jbe@6 | 26 :add_where{ "password_reset_secret_expiry > now()" } |
bsw/jbe@6 | 27 :optional_object_mode() |
bsw/jbe@6 | 28 :exec() |
bsw/jbe@6 | 29 |
bsw/jbe@6 | 30 if not member then |
bsw/jbe@6 | 31 slot.put_into("error", _"Reset code is invalid!") |
bsw/jbe@6 | 32 return false |
bsw/jbe@6 | 33 end |
bsw/jbe@6 | 34 |
bsw/jbe@6 | 35 local password1 = param.get("password1") |
bsw/jbe@6 | 36 local password2 = param.get("password2") |
bsw/jbe@6 | 37 |
bsw/jbe@6 | 38 if password1 ~= password2 then |
bsw/jbe@6 | 39 slot.put_into("error", _"Passwords don't match!") |
bsw/jbe@6 | 40 return false |
bsw/jbe@6 | 41 end |
bsw/jbe@6 | 42 |
bsw/jbe@6 | 43 if #password1 < 8 then |
bsw/jbe@6 | 44 slot.put_into("error", _"Passwords must consist of at least 8 characters!") |
bsw/jbe@6 | 45 return false |
bsw/jbe@6 | 46 end |
bsw/jbe@6 | 47 |
bsw/jbe@6 | 48 member:set_password(password1) |
bsw/jbe@6 | 49 member:save() |
bsw/jbe@6 | 50 |
bsw/jbe@6 | 51 slot.put_into("notice", _"Password has been reset successfully") |
bsw/jbe@6 | 52 |
jbe@326 | 53 end |