liquid_feedback_frontend

annotate app/main/index/_action/register.lua @ 753:82ac84d52a9e

Updated text
author bsw
date Thu Jun 28 22:44:05 2012 +0200 (2012-06-28)
parents d0676a561755
children 9a2e5f4be58c
rev   line source
mail@237 1 local code = util.trim(param.get("code"))
bsw@91 2
bsw@286 3 local member = Member:new_selector()
bsw@286 4 :add_where{ "invite_code = ?", code }
bsw@286 5 :add_where{ "activated ISNULL" }
bsw@91 6 :optional_object_mode()
bsw@91 7 :for_update()
bsw@91 8 :exec()
bsw@391 9
bsw@286 10 if not member then
bsw@286 11 slot.put_into("error", _"The code you've entered is invalid")
bsw/jbe@5 12 request.redirect{
bsw/jbe@5 13 mode = "forward",
bsw/jbe@5 14 module = "index",
bsw/jbe@5 15 view = "register"
bsw/jbe@5 16 }
bsw/jbe@5 17 return false
bsw/jbe@5 18 end
bsw/jbe@5 19
bsw@392 20 local old_notify_email = member.notify_email
bsw@392 21
bsw/jbe@6 22 local notify_email = param.get("notify_email")
bsw/jbe@5 23
bsw@286 24 if not config.locked_profile_fields.notify_email and notify_email then
bsw@286 25 if #notify_email < 5 then
bsw@286 26 slot.put_into("error", _"Email address too short!")
bsw@286 27 request.redirect{
bsw@286 28 mode = "redirect",
bsw@286 29 module = "index",
bsw@286 30 view = "register",
bsw@286 31 params = { code = member.invite_code }
bsw@286 32 }
bsw@286 33 return false
bsw@286 34 end
bsw@286 35 member.notify_email = notify_email
bsw/jbe@6 36 end
bsw/jbe@6 37
bsw@286 38 if member and not member.notify_email then
bsw/jbe@5 39 request.redirect{
bsw/jbe@5 40 mode = "redirect",
bsw/jbe@5 41 module = "index",
bsw/jbe@5 42 view = "register",
bsw@286 43 params = { code = member.invite_code, step = 1 }
bsw/jbe@5 44 }
bsw/jbe@5 45 return false
bsw/jbe@5 46 end
bsw/jbe@5 47
bsw@286 48
bsw@286 49 local name = util.trim(param.get("name"))
bsw@286 50
bsw@286 51 if not config.locked_profile_fields.name and name then
bsw/jbe@6 52
bsw@286 53 if #name < 3 then
bsw@753 54 slot.put_into("error", _"This screen name is too short!")
bsw@286 55 request.redirect{
bsw@286 56 mode = "redirect",
bsw@286 57 module = "index",
bsw@286 58 view = "register",
bsw@286 59 params = {
bsw@286 60 code = member.invite_code,
bsw@286 61 notify_email = member.notify_email,
bsw@286 62 step = 1
bsw@286 63 }
bsw/jbe@6 64 }
bsw@286 65 return false
bsw@286 66 end
bsw@286 67
bsw@351 68 local check_member = Member:by_name(name)
bsw@353 69 if check_member and check_member.id ~= member.id then
bsw@286 70 slot.put_into("error", _"This name is already taken, please choose another one!")
bsw@286 71 request.redirect{
bsw@286 72 mode = "redirect",
bsw@286 73 module = "index",
bsw@286 74 view = "register",
bsw@286 75 params = {
bsw@286 76 code = member.invite_code,
bsw@286 77 notify_email = member.notify_email,
bsw@286 78 step = 1
bsw@286 79 }
bsw@286 80 }
bsw@286 81 return false
bsw@286 82 end
bsw@286 83
bsw@286 84 member.name = name
bsw@286 85
bsw/jbe@6 86 end
bsw/jbe@6 87
bsw@286 88 if member.notify_email and not member.name then
bsw/jbe@6 89 request.redirect{
bsw/jbe@6 90 mode = "redirect",
bsw/jbe@6 91 module = "index",
bsw/jbe@6 92 view = "register",
bsw/jbe@6 93 params = {
bsw@286 94 code = member.invite_code,
bsw@286 95 notify_email = member.notify_email,
bsw@286 96 step = 1
bsw/jbe@5 97 }
bsw/jbe@5 98 }
bsw/jbe@5 99 return false
bsw/jbe@5 100 end
bsw/jbe@5 101
bsw@286 102
bsw@286 103 local login = util.trim(param.get("login"))
bsw@286 104
bsw@286 105 if not config.locked_profile_fields.login and login then
bsw@286 106 if #login < 3 then
bsw@286 107 slot.put_into("error", _"This login is too short!")
bsw@286 108 request.redirect{
bsw@286 109 mode = "redirect",
bsw@286 110 module = "index",
bsw@286 111 view = "register",
bsw@286 112 params = {
bsw@286 113 code = member.invite_code,
bsw@286 114 notify_email = member.notify_email,
bsw@286 115 name = member.name,
bsw@286 116 step = 1
bsw@286 117 }
bsw/jbe@5 118 }
bsw@286 119 return false
bsw@286 120 end
bsw@286 121
bsw@354 122 local check_member = Member:by_login(login)
bsw@354 123 if check_member and check_member.id ~= member.id then
bsw@286 124 slot.put_into("error", _"This login is already taken, please choose another one!")
bsw@286 125 request.redirect{
bsw@286 126 mode = "redirect",
bsw@286 127 module = "index",
bsw@286 128 view = "register",
bsw@286 129 params = {
bsw@286 130 code = member.invite_code,
bsw@286 131 notify_email = member.notify_email,
bsw@286 132 name = member.name,
bsw@286 133 step = 1
bsw@286 134 }
bsw@286 135 }
bsw@286 136 return false
bsw@286 137 end
bsw@286 138 member.login = login
bsw/jbe@5 139 end
bsw/jbe@5 140
bsw@286 141 if member.name and not member.login then
bsw/jbe@5 142 request.redirect{
bsw/jbe@5 143 mode = "redirect",
bsw/jbe@5 144 module = "index",
bsw/jbe@5 145 view = "register",
bsw/jbe@5 146 params = {
bsw@286 147 code = member.invite_code,
bsw@286 148 notify_email = member.notify_email,
bsw@286 149 name = member.name,
bsw@286 150 step = 1
bsw/jbe@5 151 }
bsw/jbe@5 152 }
bsw/jbe@5 153 return false
bsw/jbe@5 154 end
bsw/jbe@5 155
bsw@286 156 local step = param.get("step", atom.integer)
bsw@286 157
bsw@286 158 if step > 2 then
bsw/jbe@5 159
bsw@286 160 for i, checkbox in ipairs(config.use_terms_checkboxes) do
bsw@286 161 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
bsw@286 162 if not accepted then
bsw@286 163 slot.put_into("error", checkbox.not_accepted_error)
bsw@286 164 return false
bsw@286 165 end
bsw@286 166 end
bsw@286 167
bsw@286 168 local password1 = param.get("password1")
bsw@286 169 local password2 = param.get("password2")
bsw/jbe@6 170
bsw@286 171 if login and not password1 then
bsw@286 172 request.redirect{
bsw@286 173 mode = "redirect",
bsw@286 174 module = "index",
bsw@286 175 view = "register",
bsw@286 176 params = {
bsw@286 177 code = member.invite_code,
bsw@286 178 notify_email = member.notify_email,
bsw@286 179 name = member.name,
bsw@286 180 login = member.login
bsw@286 181 }
bsw@286 182 }
bsw@286 183 --]]
bsw@286 184 return false
bsw@286 185 end
bsw/jbe@6 186
bsw@286 187 if password1 ~= password2 then
bsw@286 188 slot.put_into("error", _"Passwords don't match!")
bsw@286 189 return false
bsw@286 190 end
bsw@83 191
bsw@286 192 if #password1 < 8 then
bsw@286 193 slot.put_into("error", _"Passwords must consist of at least 8 characters!")
bsw@286 194 return false
bsw@286 195 end
bsw@286 196
bsw@286 197 member.login = login
bsw@286 198 member.name = name
bsw@286 199
bsw@391 200 if notify_email ~= old_notify_email then
bsw@390 201 local success = member:set_notify_email(notify_email)
bsw@390 202 if not success then
bsw@390 203 slot.put_into("error", _"Can't send confirmation email")
bsw@390 204 return
bsw@390 205 end
bsw@286 206 end
bsw@390 207
bsw@286 208 member:set_password(password1)
bsw@286 209
bsw@286 210 local now = db:query("SELECT now() AS now", "object").now
bsw@79 211
bsw@286 212 for i, checkbox in ipairs(config.use_terms_checkboxes) do
bsw@286 213 local accepted = param.get("use_terms_checkbox_" .. checkbox.name, atom.boolean)
bsw@286 214 member:set_setting("use_terms_checkbox_" .. checkbox.name, "accepted at " .. tostring(now))
bsw@286 215 end
bsw/jbe@5 216
bsw@286 217 member.activated = 'now'
bsw@286 218 member.active = true
bsw@286 219 member.last_activity = 'now'
bsw@286 220 member:save()
bsw/jbe@5 221
bsw@286 222 slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
bsw@286 223
bsw@286 224 request.redirect{
bsw@286 225 mode = "redirect",
bsw@286 226 module = "index",
bsw@286 227 view = "login",
bsw@286 228 }
bsw@286 229 end
bsw@286 230

Impressum / About Us