liquid_feedback_frontend

annotate app/main/index/_action/register.lua @ 83:8d760110ee4a

Trace timestamp when user accepts a use term checkbox
author bsw
date Wed Jul 28 17:20:49 2010 +0200 (2010-07-28)
parents 26c8177ef348
children 3da86120cadd
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@79 129 if login and param.get("step") ~= "5" then
bsw/jbe@6 130 request.redirect{
bsw/jbe@6 131 mode = "redirect",
bsw/jbe@6 132 module = "index",
bsw/jbe@6 133 view = "register",
bsw/jbe@6 134 params = {
bsw/jbe@6 135 code = invite_code.code,
bsw/jbe@6 136 notify_email = notify_email,
bsw/jbe@6 137 name = name,
bsw/jbe@6 138 login = login
bsw/jbe@6 139 }
bsw/jbe@6 140 }
bsw/jbe@6 141 return false
bsw/jbe@6 142 end
bsw/jbe@6 143
bsw@79 144 for i, checkbox in ipairs(config.use_terms_checkboxes) do
bsw@79 145 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
bsw@79 146 if not accepted then
bsw@79 147 slot.put_into("error", checkbox.not_accepted_error)
bsw@79 148 return false
bsw@79 149 end
bsw@79 150 end
bsw/jbe@6 151
bsw/jbe@5 152 local password1 = param.get("password1")
bsw/jbe@5 153 local password2 = param.get("password2")
bsw/jbe@5 154
bsw/jbe@5 155 if login and not password1 then
bsw/jbe@5 156 request.redirect{
bsw/jbe@5 157 mode = "redirect",
bsw/jbe@5 158 module = "index",
bsw/jbe@5 159 view = "register",
bsw/jbe@5 160 params = {
bsw/jbe@5 161 code = invite_code.code,
bsw/jbe@6 162 notify_email = notify_email,
bsw/jbe@5 163 name = name,
bsw/jbe@5 164 login = login
bsw/jbe@5 165 }
bsw/jbe@5 166 }
bsw@79 167 --]]
bsw/jbe@5 168 return false
bsw/jbe@5 169 end
bsw/jbe@5 170
bsw/jbe@5 171 if password1 ~= password2 then
bsw/jbe@5 172 slot.put_into("error", _"Passwords don't match!")
bsw/jbe@5 173 return false
bsw/jbe@5 174 end
bsw/jbe@5 175
bsw/jbe@5 176 if #password1 < 8 then
bsw/jbe@5 177 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
bsw/jbe@5 178 return false
bsw/jbe@5 179 end
bsw/jbe@5 180
bsw/jbe@5 181 local member = Member:new()
bsw/jbe@5 182
bsw/jbe@5 183 member.login = login
bsw/jbe@5 184 member.name = name
bsw/jbe@6 185
bsw/jbe@6 186 local success = member:set_notify_email(notify_email)
bsw/jbe@6 187 if not success then
bsw/jbe@6 188 slot.put_into("error", _"Can't send confirmation email")
bsw/jbe@6 189 return
bsw/jbe@6 190 end
bsw/jbe@6 191
bsw/jbe@5 192 member:set_password(password1)
bsw/jbe@5 193 member:save()
bsw/jbe@5 194
bsw@83 195 local now = db:query("SELECT now() AS now", "object").now
bsw@83 196
bsw@79 197 for i, checkbox in ipairs(config.use_terms_checkboxes) do
bsw@79 198 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
bsw@83 199 member:set_setting("use_terms_checkbox_" .. checkbox.name, "accepted at " .. tostring(now))
bsw@79 200 end
bsw@79 201
bsw/jbe@5 202 invite_code.member_id = member.id
bsw/jbe@5 203 invite_code.used = "now"
bsw/jbe@5 204 invite_code:save()
bsw/jbe@5 205
bsw/jbe@5 206 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
bsw/jbe@5 207
bsw/jbe@6 208 request.redirect{
bsw/jbe@6 209 mode = "redirect",
bsw/jbe@6 210 module = "index",
bsw/jbe@6 211 view = "login",
bsw/jbe@6 212 }

Impressum / About Us