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