liquid_feedback_frontend
view app/main/index/_action/register.lua @ 5:afd9f769c7ae
Version beta1
Final voting with Schulze-Method is now possible
Many bug fixes and code cleanup
Registration with invite codes
More sort and filter options
Seperated display of "supporters" and "potential supporters"
Optical changes
Flood limit / initiative contigent is now checked by frontend
Neccessary changes to access core beta11
Final voting with Schulze-Method is now possible
Many bug fixes and code cleanup
Registration with invite codes
More sort and filter options
Seperated display of "supporters" and "potential supporters"
Optical changes
Flood limit / initiative contigent is now checked by frontend
Neccessary changes to access core beta11
| author | bsw/jbe |
|---|---|
| date | Fri Dec 25 12:00:00 2009 +0100 (2009-12-25) |
| parents | |
| children | 8d91bccab0bf |
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 name = param.get("name")
15 if invite_code and not name then
16 slot.put_into("notice", _"Invite code valid!")
17 request.redirect{
18 mode = "redirect",
19 module = "index",
20 view = "register",
21 params = { code = invite_code.code }
22 }
23 return false
24 end
26 if Member:by_name(name) then
27 slot.put_into("error", _"This name is already taken, please choose another one!")
28 request.redirect{
29 mode = "redirect",
30 module = "index",
31 view = "register",
32 params = { code = invite_code.code }
33 }
34 return false
35 end
37 local login = param.get("login")
39 if name and not login then
40 slot.put_into("notice", _"Name is available")
41 request.redirect{
42 mode = "redirect",
43 module = "index",
44 view = "register",
45 params = {
46 code = invite_code.code,
47 name = name
48 }
49 }
50 return false
51 end
53 if Member:by_login(login) then
54 slot.put_into("error", _"This login is already taken, please choose another one!")
55 request.redirect{
56 mode = "redirect",
57 module = "index",
58 view = "register",
59 params = {
60 code = invite_code.code,
61 name = name
62 }
63 }
64 return false
65 end
67 local password1 = param.get("password1")
68 local password2 = param.get("password2")
70 if login and not password1 then
71 slot.put_into("notice", _"Login is available")
72 request.redirect{
73 mode = "redirect",
74 module = "index",
75 view = "register",
76 params = {
77 code = invite_code.code,
78 name = name,
79 login = login
80 }
81 }
82 return false
83 end
85 if password1 ~= password2 then
86 slot.put_into("error", _"Passwords don't match!")
87 request.redirect{
88 mode = "redirect",
89 module = "index",
90 view = "register",
91 params = {
92 code = invite_code.code,
93 name = name,
94 login = login
95 }
96 }
97 return false
98 end
100 if #password1 < 8 then
101 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
102 request.redirect{
103 mode = "redirect",
104 module = "index",
105 view = "register",
106 params = {
107 code = invite_code.code,
108 name = name,
109 login = login
110 }
111 }
112 return false
113 end
115 local member = Member:new()
117 member.login = login
118 member.name = name
119 member:set_password(password1)
120 member:save()
122 invite_code.member_id = member.id
123 invite_code.used = "now"
124 invite_code:save()
126 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
128 request.redirect{
129 mode = "redirect",
130 module = "index",
131 view = "login",
132 }
