liquid_feedback_frontend

view app/main/index/_action/register.lua @ 352:07b7826487c0

Added missing brackets
author bsw
date Wed Feb 29 20:13:57 2012 +0100 (2012-02-29)
parents 2a20b9b547ac
children 5bebbc39f629
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 :optional_object_mode()
7 :for_update()
8 :exec()
10 if not member then
11 slot.put_into("error", _"The code you've entered is invalid")
12 request.redirect{
13 mode = "forward",
14 module = "index",
15 view = "register"
16 }
17 return false
18 end
20 local notify_email = param.get("notify_email")
22 if not config.locked_profile_fields.notify_email and notify_email then
23 if #notify_email < 5 then
24 slot.put_into("error", _"Email address too short!")
25 request.redirect{
26 mode = "redirect",
27 module = "index",
28 view = "register",
29 params = { code = member.invite_code }
30 }
31 return false
32 end
33 member.notify_email = notify_email
34 end
36 if member and not member.notify_email then
37 request.redirect{
38 mode = "redirect",
39 module = "index",
40 view = "register",
41 params = { code = member.invite_code, step = 1 }
42 }
43 return false
44 end
47 local name = util.trim(param.get("name"))
49 if not config.locked_profile_fields.name and name then
51 if #name < 3 then
52 slot.put_into("error", _"This username is too short!")
53 request.redirect{
54 mode = "redirect",
55 module = "index",
56 view = "register",
57 params = {
58 code = member.invite_code,
59 notify_email = member.notify_email,
60 step = 1
61 }
62 }
63 return false
64 end
66 local check_member = Member:by_name(name)
67 if check_member and (check_member.id ~= member.id) then
68 slot.put_into("error", _"This name is already taken, please choose another one!")
69 request.redirect{
70 mode = "redirect",
71 module = "index",
72 view = "register",
73 params = {
74 code = member.invite_code,
75 notify_email = member.notify_email,
76 step = 1
77 }
78 }
79 return false
80 end
82 member.name = name
84 end
86 if member.notify_email and not member.name then
87 request.redirect{
88 mode = "redirect",
89 module = "index",
90 view = "register",
91 params = {
92 code = member.invite_code,
93 notify_email = member.notify_email,
94 step = 1
95 }
96 }
97 return false
98 end
101 local login = util.trim(param.get("login"))
103 if not config.locked_profile_fields.login and login then
104 if #login < 3 then
105 slot.put_into("error", _"This login is too short!")
106 request.redirect{
107 mode = "redirect",
108 module = "index",
109 view = "register",
110 params = {
111 code = member.invite_code,
112 notify_email = member.notify_email,
113 name = member.name,
114 step = 1
115 }
116 }
117 return false
118 end
120 if Member:by_login(login) then
121 slot.put_into("error", _"This login is already taken, please choose another one!")
122 request.redirect{
123 mode = "redirect",
124 module = "index",
125 view = "register",
126 params = {
127 code = member.invite_code,
128 notify_email = member.notify_email,
129 name = member.name,
130 step = 1
131 }
132 }
133 return false
134 end
135 member.login = login
136 end
138 if member.name and not member.login then
139 request.redirect{
140 mode = "redirect",
141 module = "index",
142 view = "register",
143 params = {
144 code = member.invite_code,
145 notify_email = member.notify_email,
146 name = member.name,
147 step = 1
148 }
149 }
150 return false
151 end
153 local step = param.get("step", atom.integer)
155 if step > 2 then
157 for i, checkbox in ipairs(config.use_terms_checkboxes) do
158 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
159 if not accepted then
160 slot.put_into("error", checkbox.not_accepted_error)
161 return false
162 end
163 end
165 local password1 = param.get("password1")
166 local password2 = param.get("password2")
168 if login and not password1 then
169 request.redirect{
170 mode = "redirect",
171 module = "index",
172 view = "register",
173 params = {
174 code = member.invite_code,
175 notify_email = member.notify_email,
176 name = member.name,
177 login = member.login
178 }
179 }
180 --]]
181 return false
182 end
184 if password1 ~= password2 then
185 slot.put_into("error", _"Passwords don't match!")
186 return false
187 end
189 if #password1 < 8 then
190 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
191 return false
192 end
194 member.login = login
195 member.name = name
197 local success = member:set_notify_email(notify_email)
198 if not success then
199 slot.put_into("error", _"Can't send confirmation email")
200 return
201 end
203 member:set_password(password1)
205 local now = db:query("SELECT now() AS now", "object").now
207 for i, checkbox in ipairs(config.use_terms_checkboxes) do
208 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
209 member:set_setting("use_terms_checkbox_" .. checkbox.name, "accepted at " .. tostring(now))
210 end
212 member.activated = 'now'
213 member.active = true
214 member.last_activity = 'now'
215 member:save()
217 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
219 request.redirect{
220 mode = "redirect",
221 module = "index",
222 view = "login",
223 }
224 end

Impressum / About Us