liquid_feedback_frontend

view app/main/index/_action/register.lua @ 941:26a6d3330bab

Fixed syntax error (missing then)
author bsw
date Mon Nov 05 17:30:30 2012 +0100 (2012-11-05)
parents 064fcd8f784f
children ba824959fc1f
line source
1 local code = util.trim(param.get("code"))
3 local member = Member:new_selector()
4 :add_where{ "invite_code = ?", code }
5 :add_where{ "activated ISNULL" }
6 :add_where{ "NOT locked" }
7 :optional_object_mode()
8 :for_update()
9 :exec()
11 if not member then
12 slot.put_into("error", _"The code you've entered is invalid")
13 request.redirect{
14 mode = "forward",
15 module = "index",
16 view = "register"
17 }
18 return false
19 end
21 local old_notify_email = member.notify_email
23 local notify_email = param.get("notify_email")
25 if not config.locked_profile_fields.notify_email and notify_email then
26 if #notify_email < 5 then
27 slot.put_into("error", _"Email address too short!")
28 request.redirect{
29 mode = "redirect",
30 module = "index",
31 view = "register",
32 params = { code = member.invite_code }
33 }
34 return false
35 end
36 member.notify_email = notify_email
37 end
39 if member and not member.notify_email then
40 request.redirect{
41 mode = "redirect",
42 module = "index",
43 view = "register",
44 params = { code = member.invite_code, step = 1 }
45 }
46 return false
47 end
50 local name = util.trim(param.get("name"))
52 if not config.locked_profile_fields.name and name then
54 if #name < 3 then
55 slot.put_into("error", _"This screen name is too short!")
56 request.redirect{
57 mode = "redirect",
58 module = "index",
59 view = "register",
60 params = {
61 code = member.invite_code,
62 notify_email = member.notify_email,
63 step = 1
64 }
65 }
66 return false
67 end
69 local check_member = Member:by_name(name)
70 if check_member and check_member.id ~= member.id then
71 slot.put_into("error", _"This name is already taken, please choose another one!")
72 request.redirect{
73 mode = "redirect",
74 module = "index",
75 view = "register",
76 params = {
77 code = member.invite_code,
78 notify_email = member.notify_email,
79 step = 1
80 }
81 }
82 return false
83 end
85 member.name = name
87 end
89 if member.notify_email and not member.name then
90 request.redirect{
91 mode = "redirect",
92 module = "index",
93 view = "register",
94 params = {
95 code = member.invite_code,
96 notify_email = member.notify_email,
97 step = 1
98 }
99 }
100 return false
101 end
104 local login = util.trim(param.get("login"))
106 if not config.locked_profile_fields.login and login then
107 if #login < 3 then
108 slot.put_into("error", _"This login is too short!")
109 request.redirect{
110 mode = "redirect",
111 module = "index",
112 view = "register",
113 params = {
114 code = member.invite_code,
115 notify_email = member.notify_email,
116 name = member.name,
117 step = 1
118 }
119 }
120 return false
121 end
123 local check_member = Member:by_login(login)
124 if check_member and check_member.id ~= member.id then
125 slot.put_into("error", _"This login is already taken, please choose another one!")
126 request.redirect{
127 mode = "redirect",
128 module = "index",
129 view = "register",
130 params = {
131 code = member.invite_code,
132 notify_email = member.notify_email,
133 name = member.name,
134 step = 1
135 }
136 }
137 return false
138 end
139 member.login = login
140 end
142 if member.name and not member.login then
143 request.redirect{
144 mode = "redirect",
145 module = "index",
146 view = "register",
147 params = {
148 code = member.invite_code,
149 notify_email = member.notify_email,
150 name = member.name,
151 step = 1
152 }
153 }
154 return false
155 end
157 local step = param.get("step", atom.integer)
159 if step > 2 then
161 for i, checkbox in ipairs(config.use_terms_checkboxes) do
162 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
163 if not accepted then
164 slot.put_into("error", checkbox.not_accepted_error)
165 return false
166 end
167 end
169 local password1 = param.get("password1")
170 local password2 = param.get("password2")
172 if login and not password1 then
173 request.redirect{
174 mode = "redirect",
175 module = "index",
176 view = "register",
177 params = {
178 code = member.invite_code,
179 notify_email = member.notify_email,
180 name = member.name,
181 login = member.login
182 }
183 }
184 --]]
185 return false
186 end
188 if password1 ~= password2 then
189 slot.put_into("error", _"Passwords don't match!")
190 return false
191 end
193 if #password1 < 8 then
194 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
195 return false
196 end
198 if not config.locked_profile_fields.login then
199 member.login = login
200 end
202 if not config.locked_profile_fields.name then
203 member.name = name
204 end
206 if notify_email ~= old_notify_email then
207 local success = member:set_notify_email(notify_email)
208 if not success then
209 slot.put_into("error", _"Can't send confirmation email")
210 return
211 end
212 end
214 member:set_password(password1)
216 local now = db:query("SELECT now() AS now", "object").now
218 for i, checkbox in ipairs(config.use_terms_checkboxes) do
219 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
220 member:set_setting("use_terms_checkbox_" .. checkbox.name, "accepted at " .. tostring(now))
221 end
223 member.activated = 'now'
224 member.active = true
225 member.last_activity = 'now'
226 member:save()
228 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
230 request.redirect{
231 mode = "redirect",
232 module = "index",
233 view = "login",
234 }
235 end

Impressum / About Us