liquid_feedback_frontend
view app/main/index/_action/register.lua @ 29:b195682957dc
Bugfix related to word-wrap in initiative head
| author | bsw |
|---|---|
| date | Sun Feb 21 17:34:26 2010 +0100 (2010-02-21) |
| parents | 8d91bccab0bf |
| children | 26c8177ef348 |
line source
1 local invite_code = InviteCode:by_code(param.get("code"))
3 if not invite_code or invite_code.used then
4 slot.put_into("error", _"The code you've entered is invalid")
5 request.redirect{
6 mode = "forward",
7 module = "index",
8 view = "register"
9 }
10 return false
11 end
13 local notify_email = param.get("notify_email")
15 if invite_code and not notify_email then
16 request.redirect{
17 mode = "redirect",
18 module = "index",
19 view = "register",
20 params = { code = invite_code.code }
21 }
22 return false
23 end
25 if #notify_email < 5 then
26 slot.put_into("error", _"Email address too short!")
27 request.redirect{
28 mode = "redirect",
29 module = "index",
30 view = "register",
31 params = { code = invite_code.code }
32 }
33 return false
34 end
36 local name = param.get("name")
38 if notify_email and not name then
39 request.redirect{
40 mode = "redirect",
41 module = "index",
42 view = "register",
43 params = {
44 code = invite_code.code,
45 notify_email = notify_email
46 }
47 }
48 return false
49 end
51 name = util.trim(name)
53 if #name < 3 then
54 slot.put_into("error", _"This username is too short!")
55 request.redirect{
56 mode = "redirect",
57 module = "index",
58 view = "register",
59 params = {
60 code = invite_code.code,
61 notify_email = notify_email
62 }
63 }
64 return false
65 end
67 if Member:by_name(name) 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 = invite_code.code,
75 notify_email = notify_email
76 }
77 }
78 return false
79 end
81 local login = param.get("login")
83 if name and not login then
84 request.redirect{
85 mode = "redirect",
86 module = "index",
87 view = "register",
88 params = {
89 code = invite_code.code,
90 notify_email = notify_email,
91 name = name
92 }
93 }
94 return false
95 end
97 login = util.trim(login)
99 if #login < 3 then
100 slot.put_into("error", _"This login is too short!")
101 request.redirect{
102 mode = "redirect",
103 module = "index",
104 view = "register",
105 params = {
106 code = invite_code.code,
107 notify_email = notify_email,
108 name = name
109 }
110 }
111 return false
112 end
114 if Member:by_login(login) then
115 slot.put_into("error", _"This login is already taken, please choose another one!")
116 request.redirect{
117 mode = "redirect",
118 module = "index",
119 view = "register",
120 params = {
121 code = invite_code.code,
122 notify_email = notify_email,
123 name = name
124 }
125 }
126 return false
127 end
129 local use_terms_accepted = param.get("use_terms_accepted", atom.boolean)
131 if login and use_terms_accepted == nil then
132 request.redirect{
133 mode = "redirect",
134 module = "index",
135 view = "register",
136 params = {
137 code = invite_code.code,
138 notify_email = notify_email,
139 name = name,
140 login = login
141 }
142 }
143 return false
144 end
146 if use_terms_accepted ~= true then
147 slot.put_into("error", _"You have to accept the terms of use to complete registration.")
148 request.redirect{
149 mode = "redirect",
150 module = "index",
151 view = "register",
152 params = {
153 code = invite_code.code,
154 notify_email = notify_email,
155 name = name,
156 login = login
157 }
158 }
159 return false
160 end
162 local password1 = param.get("password1")
163 local password2 = param.get("password2")
165 if login and not password1 then
166 request.redirect{
167 mode = "redirect",
168 module = "index",
169 view = "register",
170 params = {
171 code = invite_code.code,
172 notify_email = notify_email,
173 name = name,
174 login = login
175 }
176 }
177 return false
178 end
180 if password1 ~= password2 then
181 slot.put_into("error", _"Passwords don't match!")
182 request.redirect{
183 mode = "redirect",
184 module = "index",
185 view = "register",
186 params = {
187 code = invite_code.code,
188 notify_email = notify_email,
189 name = name,
190 login = login
191 }
192 }
193 return false
194 end
196 if #password1 < 8 then
197 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
198 request.redirect{
199 mode = "redirect",
200 module = "index",
201 view = "register",
202 params = {
203 code = invite_code.code,
204 notify_email = notify_email,
205 name = name,
206 login = login
207 }
208 }
209 return false
210 end
212 local member = Member:new()
214 member.login = login
215 member.name = name
217 local success = member:set_notify_email(notify_email)
218 if not success then
219 slot.put_into("error", _"Can't send confirmation email")
220 request.redirect{
221 mode = "redirect",
222 module = "index",
223 view = "register",
224 params = {
225 code = invite_code.code,
226 notify_email = notify_email,
227 name = name,
228 login = login
229 }
230 }
231 return
232 end
234 member:set_password(password1)
235 member:save()
237 invite_code.member_id = member.id
238 invite_code.used = "now"
239 invite_code:save()
241 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
243 request.redirect{
244 mode = "redirect",
245 module = "index",
246 view = "login",
247 }
