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
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 }

Impressum / About Us