liquid_feedback_frontend

annotate app/main/index/_action/register.lua @ 10:72c5e0ee7c98

Version beta6

Bugfixes:
- Security fix: Every user was able to change the discussion URL of an initiative
- Creation of new issues in areas without default policies is now possible
- Members can now be sorted in different ways
- No error when trying to compare a draft with itself
- Added missing local statement to variable initialization in app/main/delegation/new.lua
- CSS flaw in initiative action bar fixed

New features:
- Possiblity to invite other users to become initiator
- Revokation of initiatives implemented
- Number of suggestions, supporters, etc. is shown on corresponding tabs of initiative view
- Members can now be sorted by account creation (default sorting is "newest first")
- Configuration option to create an automatic discussion link for all issues
- First draft of global timeline feature (not accessible via link yet)
- Custom stylesheet URL for users marked as developers

In area listing the number of closed issues is shown too

Renamed "author" field of initiative to "last author"

Removed wrongly included file app/main/member/_show_thumb.lua.orig in the distribution

Help texts updated
author bsw
date Sun Jan 10 12:00:00 2010 +0100 (2010-01-10)
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 }

Impressum / About Us