bsw/jbe@5: local invite_code = InviteCode:by_code(param.get("code")) bsw/jbe@5: bsw/jbe@5: if not invite_code or invite_code.used then bsw/jbe@5: slot.put_into("error", _"The code you've entered is invalid") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "forward", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register" bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@6: local notify_email = param.get("notify_email") bsw/jbe@5: bsw/jbe@6: if invite_code and not notify_email then bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { code = invite_code.code } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@6: if #notify_email < 5 then bsw/jbe@6: slot.put_into("error", _"Email address too short!") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { code = invite_code.code } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@6: local name = param.get("name") bsw/jbe@6: bsw/jbe@6: if notify_email and not name then bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@6: name = util.trim(name) bsw/jbe@6: bsw/jbe@6: if #name < 3 then bsw/jbe@6: slot.put_into("error", _"This username is too short!") bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@5: if Member:by_name(name) then bsw/jbe@5: slot.put_into("error", _"This name is already taken, please choose another one!") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email bsw/jbe@6: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@5: local login = param.get("login") bsw/jbe@5: bsw/jbe@5: if name and not login then bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { bsw/jbe@5: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@6: name = name bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@6: login = util.trim(login) bsw/jbe@6: bsw/jbe@6: if #login < 3 then bsw/jbe@6: slot.put_into("error", _"This login is too short!") bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@5: name = name bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@5: if Member:by_login(login) then bsw/jbe@5: slot.put_into("error", _"This login is already taken, please choose another one!") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { bsw/jbe@5: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@5: name = name bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@6: local use_terms_accepted = param.get("use_terms_accepted", atom.boolean) bsw/jbe@6: bsw/jbe@6: if login and use_terms_accepted == nil then bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@6: name = name, bsw/jbe@6: login = login bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@6: if use_terms_accepted ~= true then bsw/jbe@6: slot.put_into("error", _"You have to accept the terms of use to complete registration.") bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@6: name = name, bsw/jbe@6: login = login bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return false bsw/jbe@6: end bsw/jbe@6: bsw/jbe@5: local password1 = param.get("password1") bsw/jbe@5: local password2 = param.get("password2") bsw/jbe@5: bsw/jbe@5: if login and not password1 then bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { bsw/jbe@5: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@5: name = name, bsw/jbe@5: login = login bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@5: if password1 ~= password2 then bsw/jbe@5: slot.put_into("error", _"Passwords don't match!") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { bsw/jbe@5: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@5: name = name, bsw/jbe@5: login = login bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@5: if #password1 < 8 then bsw/jbe@5: slot.put_into("error", _"Passwords must consist of at least 8 characters!") bsw/jbe@5: request.redirect{ bsw/jbe@5: mode = "redirect", bsw/jbe@5: module = "index", bsw/jbe@5: view = "register", bsw/jbe@5: params = { bsw/jbe@5: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@5: name = name, bsw/jbe@5: login = login bsw/jbe@5: } bsw/jbe@5: } bsw/jbe@5: return false bsw/jbe@5: end bsw/jbe@5: bsw/jbe@5: local member = Member:new() bsw/jbe@5: bsw/jbe@5: member.login = login bsw/jbe@5: member.name = name bsw/jbe@6: bsw/jbe@6: local success = member:set_notify_email(notify_email) bsw/jbe@6: if not success then bsw/jbe@6: slot.put_into("error", _"Can't send confirmation email") bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "register", bsw/jbe@6: params = { bsw/jbe@6: code = invite_code.code, bsw/jbe@6: notify_email = notify_email, bsw/jbe@6: name = name, bsw/jbe@6: login = login bsw/jbe@6: } bsw/jbe@6: } bsw/jbe@6: return bsw/jbe@6: end bsw/jbe@6: bsw/jbe@5: member:set_password(password1) bsw/jbe@5: member:save() bsw/jbe@5: bsw/jbe@5: invite_code.member_id = member.id bsw/jbe@5: invite_code.used = "now" bsw/jbe@5: invite_code:save() bsw/jbe@5: bsw/jbe@5: slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!") bsw/jbe@5: bsw/jbe@6: request.redirect{ bsw/jbe@6: mode = "redirect", bsw/jbe@6: module = "index", bsw/jbe@6: view = "login", bsw/jbe@6: }