liquid_feedback_frontend
annotate app/main/index/_action/register.lua @ 41:53a45356c107
Several bugfixes, including bugfix in timeline
- Fixed grouping of multiple new drafts in timeline
- Do not allow to add suggestions when issue is half frozen
- Do not show initiator invitations for (half-)frozen or closed issues
- Fixed problem with duplicates in display of vote-later requests
- Clarified german "member is participating" info text in delegation chain
- Hide inactive members from member listing
- Fixed grouping of multiple new drafts in timeline
- Do not allow to add suggestions when issue is half frozen
- Do not show initiator invitations for (half-)frozen or closed issues
- Fixed problem with duplicates in display of vote-later requests
- Clarified german "member is participating" info text in delegation chain
- Hide inactive members from member listing
| author | bsw |
|---|---|
| date | Sun Mar 07 15:36:54 2010 +0100 (2010-03-07) |
| parents | 8d91bccab0bf |
| 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 } |