liquid_feedback_frontend
diff app/main/index/_action/register.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 | b298a0534642 |
| children | 18831d75ea87 |
line diff
1.1 --- a/app/main/index/_action/register.lua Thu Jun 23 03:30:57 2016 +0200 1.2 +++ b/app/main/index/_action/register.lua Sun Jul 15 14:07:29 2018 +0200 1.3 @@ -4,13 +4,13 @@ 1.4 1.5 if app.session.authority == "ldap" then 1.6 if not config.ldap.member or config.ldap.member.registration ~= "manual" then 1.7 - error("access denied") 1.8 + return execute.view { module = "index", view = "403" } 1.9 end 1.10 member = ldap.create_member(app.session.authority_uid, true) 1.11 1.12 else 1.13 if config.registration_disabled then 1.14 - error("registration disabled") 1.15 + return execute.view { module = "index", view = "403" } 1.16 end 1.17 member = Member:new_selector() 1.18 :add_where{ "invite_code = ?", code } 1.19 @@ -21,38 +21,58 @@ 1.20 :exec() 1.21 end 1.22 1.23 - 1.24 + 1.25 if not member then 1.26 slot.put_into("error", _"The code you've entered is invalid") 1.27 request.redirect{ 1.28 mode = "forward", 1.29 module = "index", 1.30 - view = "register" 1.31 + view = "register", params = { 1.32 + redirect_module = param.get("redirect_module"), 1.33 + redirect_view = param.get("redirect_view"), 1.34 + redirect_id = param.get("redirect_id"), 1.35 + redirect_params = param.get("redirect_params") 1.36 + } 1.37 } 1.38 return false 1.39 end 1.40 1.41 local notify_email = param.get("notify_email") 1.42 1.43 -if not util.is_profile_field_locked(member, "notify_email") and notify_email then 1.44 +if not util.is_profile_field_locked(member, "notify_email") and not member.notify_email and notify_email then 1.45 if #notify_email < 5 then 1.46 slot.put_into("error", _"Email address too short!") 1.47 request.redirect{ 1.48 mode = "redirect", 1.49 module = "index", 1.50 view = "register", 1.51 - params = { code = member.invite_code } 1.52 + params = { 1.53 + code = member.invite_code, 1.54 + skip = param.get("skip"), 1.55 + redirect_module = param.get("redirect_module"), 1.56 + redirect_view = param.get("redirect_view"), 1.57 + redirect_id = param.get("redirect_id"), 1.58 + redirect_params = param.get("redirect_params") 1.59 + } 1.60 } 1.61 return false 1.62 end 1.63 end 1.64 1.65 -if member and not util.is_profile_field_locked(member, "notify_email") and not notify_email then 1.66 +if member and not util.is_profile_field_locked(member, "notify_email") and not member.notify_email and not notify_email then 1.67 request.redirect{ 1.68 mode = "redirect", 1.69 module = "index", 1.70 view = "register", 1.71 - params = { code = member.invite_code, step = 1 } 1.72 + params = { 1.73 + code = member.invite_code, 1.74 + skip = param.get("skip"), 1.75 + step = 1, 1.76 + redirect_module = param.get("redirect_module"), 1.77 + redirect_view = param.get("redirect_view"), 1.78 + redirect_id = param.get("redirect_id"), 1.79 + redirect_params = param.get("redirect_params") 1.80 + } 1.81 } 1.82 return false 1.83 end 1.84 @@ -71,7 +91,12 @@ 1.85 params = { 1.86 code = member.invite_code, 1.87 notify_email = notify_email, 1.88 - step = 1 1.89 + step = 1, 1.90 + skip = param.get("skip"), 1.91 + redirect_module = param.get("redirect_module"), 1.92 + redirect_view = param.get("redirect_view"), 1.93 + redirect_id = param.get("redirect_id"), 1.94 + redirect_params = param.get("redirect_params") 1.95 } 1.96 } 1.97 return false 1.98 @@ -87,7 +112,12 @@ 1.99 params = { 1.100 code = member.invite_code, 1.101 notify_email = notify_email, 1.102 - step = 1 1.103 + step = 1, 1.104 + skip = param.get("skip"), 1.105 + redirect_module = param.get("redirect_module"), 1.106 + redirect_view = param.get("redirect_view"), 1.107 + redirect_id = param.get("redirect_id"), 1.108 + redirect_params = param.get("redirect_params") 1.109 } 1.110 } 1.111 return false 1.112 @@ -105,7 +135,12 @@ 1.113 params = { 1.114 code = member.invite_code, 1.115 notify_email = notify_email, 1.116 - step = 1 1.117 + step = 1, 1.118 + skip = param.get("skip"), 1.119 + redirect_module = param.get("redirect_module"), 1.120 + redirect_view = param.get("redirect_view"), 1.121 + redirect_id = param.get("redirect_id"), 1.122 + redirect_params = param.get("redirect_params") 1.123 } 1.124 } 1.125 return false 1.126 @@ -124,7 +159,12 @@ 1.127 code = member.invite_code, 1.128 notify_email = notify_email, 1.129 name = member.name, 1.130 - step = 1 1.131 + step = 1, 1.132 + skip = param.get("skip"), 1.133 + redirect_module = param.get("redirect_module"), 1.134 + redirect_view = param.get("redirect_view"), 1.135 + redirect_id = param.get("redirect_id"), 1.136 + redirect_params = param.get("redirect_params") 1.137 } 1.138 } 1.139 return false 1.140 @@ -141,7 +181,12 @@ 1.141 code = member.invite_code, 1.142 notify_email = notify_email, 1.143 name = member.name, 1.144 - step = 1 1.145 + step = 1, 1.146 + skip = param.get("skip"), 1.147 + redirect_module = param.get("redirect_module"), 1.148 + redirect_view = param.get("redirect_view"), 1.149 + redirect_id = param.get("redirect_id"), 1.150 + redirect_params = param.get("redirect_params") 1.151 } 1.152 } 1.153 return false 1.154 @@ -158,7 +203,12 @@ 1.155 code = member.invite_code, 1.156 notify_email = notify_email, 1.157 name = member.name, 1.158 - step = 1 1.159 + step = 1, 1.160 + skip = param.get("skip"), 1.161 + redirect_module = param.get("redirect_module"), 1.162 + redirect_view = param.get("redirect_view"), 1.163 + redirect_id = param.get("redirect_id"), 1.164 + redirect_params = param.get("redirect_params") 1.165 } 1.166 } 1.167 return false 1.168 @@ -169,10 +219,16 @@ 1.169 if step > 2 then 1.170 1.171 for i, checkbox in ipairs(config.use_terms_checkboxes) do 1.172 - local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) 1.173 - if not accepted then 1.174 - slot.put_into("error", checkbox.not_accepted_error) 1.175 - return false 1.176 + local member_useterms = MemberUseterms:new_selector() 1.177 + :add_where{ "member_id = ?", member.id } 1.178 + :add_where{ "contract_identifier = ?", checkbox.name } 1.179 + :exec() 1.180 + if #member_useterms == 0 then 1.181 + local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) 1.182 + if not accepted then 1.183 + slot.put_into("error", checkbox.not_accepted_error) 1.184 + return false 1.185 + end 1.186 end 1.187 end 1.188 1.189 @@ -190,7 +246,12 @@ 1.190 code = member.invite_code, 1.191 notify_email = notify_email, 1.192 name = member.name, 1.193 - login = member.login 1.194 + login = member.login, 1.195 + skip = param.get("skip"), 1.196 + redirect_module = param.get("redirect_module"), 1.197 + redirect_view = param.get("redirect_view"), 1.198 + redirect_id = param.get("redirect_id"), 1.199 + redirect_params = param.get("redirect_params") 1.200 } 1.201 } 1.202 --]] 1.203 @@ -219,7 +280,7 @@ 1.204 member.name = name 1.205 end 1.206 1.207 - if notify_email ~= member.notify_email then 1.208 + if not member.notify_email then 1.209 local success = member:set_notify_email(notify_email) 1.210 if not success then 1.211 slot.put_into("error", _"Can't send confirmation email") 1.212 @@ -231,7 +292,10 @@ 1.213 1.214 for i, checkbox in ipairs(config.use_terms_checkboxes) do 1.215 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean) 1.216 - member:set_setting("use_terms_checkbox_" .. checkbox.name, "accepted at " .. tostring(now)) 1.217 + local member_useterms = MemberUseterms:new() 1.218 + member_useterms.member_id = member.id 1.219 + member_useterms.contract_identifier = checkbox.name 1.220 + member_useterms:save() 1.221 end 1.222 1.223 member.activated = 'now' 1.224 @@ -239,12 +303,24 @@ 1.225 member.last_activity = 'now' 1.226 member:save() 1.227 1.228 - slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!") 1.229 + if not member.profile then 1.230 + local profile = MemberProfile:new() 1.231 + profile.member_id = member.id 1.232 + profile.profile = json.object() 1.233 + profile:save() 1.234 + end 1.235 + 1.236 + slot.put_into("notice", _"Registration succeeded") 1.237 + 1.238 + app.session.member_id = member.id 1.239 + app.session:save() 1.240 1.241 request.redirect{ 1.242 mode = "redirect", 1.243 - module = "index", 1.244 - view = "login", 1.245 + module = param.get("redirect_module") or "index", 1.246 + view = param.get("redirect_view") or "index", 1.247 + id = param.get("redirect_id"), 1.248 + params = param.get("redirect_params") 1.249 } 1.250 end 1.251