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