liquid_feedback_frontend
annotate app/main/index/_action/register.lua @ 6:8d91bccab0bf
Version beta2
Possibility to browse voters of a closed issue
Registration with invite code
Email confirmation and password recovery
Download function (for database dumps) added
Critical bug solved, which made it impossible to select your opinion on other peoples suggestions
Catching error, when trying to set an opinion on a suggestion which has been meanwhile deleted
Fixed wrong sorting order for "supporters" or "potential supporters"
Added format info for birthday (Error when entering dates in wrong format is NOT fixed in this release)
Strip space characters from certain fields and ensure they contain at least 3 characters
Showing grade in opinion/list as clear text instead of integer value
More information on initiative is displayed while voting
Colored notification box shown on pages of issues or initiatives which are currently in voting state
Changed default filter for issues to "Open"
Back link on suggestion page
Some optical changes
Removed wrong space character in LICENSE file
Possibility to browse voters of a closed issue
Registration with invite code
Email confirmation and password recovery
Download function (for database dumps) added
Critical bug solved, which made it impossible to select your opinion on other peoples suggestions
Catching error, when trying to set an opinion on a suggestion which has been meanwhile deleted
Fixed wrong sorting order for "supporters" or "potential supporters"
Added format info for birthday (Error when entering dates in wrong format is NOT fixed in this release)
Strip space characters from certain fields and ensure they contain at least 3 characters
Showing grade in opinion/list as clear text instead of integer value
More information on initiative is displayed while voting
Colored notification box shown on pages of issues or initiatives which are currently in voting state
Changed default filter for issues to "Open"
Back link on suggestion page
Some optical changes
Removed wrong space character in LICENSE file
author | bsw/jbe |
---|---|
date | Sat Jan 02 12:00:00 2010 +0100 (2010-01-02) |
parents | afd9f769c7ae |
children | 26c8177ef348 |
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 } |