liquid_feedback_frontend

diff app/main/index/_action/register.lua @ 1071:58f48a8a202a

Imported and merged LDAP patch
author bsw
date Fri Jul 18 21:42:59 2014 +0200 (2014-07-18)
parents ba824959fc1f
children aefef1556d55
line diff
     1.1 --- a/app/main/index/_action/register.lua	Thu Jul 17 23:38:35 2014 +0200
     1.2 +++ b/app/main/index/_action/register.lua	Fri Jul 18 21:42:59 2014 +0200
     1.3 @@ -1,12 +1,26 @@
     1.4  local code = util.trim(param.get("code"))
     1.5  
     1.6 -local member = Member:new_selector()
     1.7 -  :add_where{ "invite_code = ?", code }
     1.8 -  :add_where{ "activated ISNULL" }
     1.9 -  :add_where{ "NOT locked" }
    1.10 -  :optional_object_mode()
    1.11 -  :for_update()
    1.12 -  :exec()
    1.13 +local member
    1.14 +
    1.15 +if app.session.authority == "ldap" then
    1.16 +  if not config.ldap.member or not config.ldap.member.registration == "manual" then
    1.17 +    error("access denied")
    1.18 +  end
    1.19 +  member = ldap.create_member(app.session.authority_data_uid, true)
    1.20 +  
    1.21 +else
    1.22 +  if config.registration_disabled then
    1.23 +    error("registration disabled")
    1.24 +  end
    1.25 +  member = Member:new_selector()
    1.26 +    :add_where{ "invite_code = ?", code }
    1.27 +    :add_where{ "activated ISNULL" }
    1.28 +    :add_where{ "NOT locked" }
    1.29 +    :optional_object_mode()
    1.30 +    :for_update()
    1.31 +    :exec()
    1.32 +end
    1.33 +
    1.34    
    1.35  if not member then
    1.36    slot.put_into("error", _"The code you've entered is invalid")
    1.37 @@ -20,7 +34,7 @@
    1.38  
    1.39  local notify_email = param.get("notify_email")
    1.40  
    1.41 -if not config.locked_profile_fields.notify_email and notify_email then
    1.42 +if not util.is_profile_field_locked(member, "notify_email") and notify_email then
    1.43    if #notify_email < 5 then
    1.44      slot.put_into("error", _"Email address too short!")
    1.45      request.redirect{
    1.46 @@ -33,7 +47,7 @@
    1.47    end
    1.48  end
    1.49  
    1.50 -if member and not notify_email then
    1.51 +if member and not util.is_profile_field_locked(member, "notify_email") and not notify_email then
    1.52    request.redirect{
    1.53      mode   = "redirect",
    1.54      module = "index",
    1.55 @@ -46,7 +60,7 @@
    1.56  
    1.57  local name = util.trim(param.get("name"))
    1.58  
    1.59 -if not config.locked_profile_fields.name and name then
    1.60 +if not util.is_profile_field_locked(member, "name") and name then
    1.61  
    1.62    if #name < 3 then
    1.63      slot.put_into("error", _"This screen name is too short!")
    1.64 @@ -83,7 +97,7 @@
    1.65  
    1.66  end
    1.67  
    1.68 -if notify_email and not member.name then
    1.69 +if notify_email and not util.is_profile_field_locked(member, "name") and not member.name then
    1.70    request.redirect{
    1.71      mode   = "redirect",
    1.72      module = "index",
    1.73 @@ -97,10 +111,9 @@
    1.74    return false
    1.75  end
    1.76  
    1.77 -
    1.78  local login = util.trim(param.get("login"))
    1.79  
    1.80 -if not config.locked_profile_fields.login and login then
    1.81 +if not util.is_profile_field_locked(member, "login") and login then
    1.82    if #login < 3 then 
    1.83      slot.put_into("error", _"This login is too short!")
    1.84      request.redirect{
    1.85 @@ -136,7 +149,7 @@
    1.86    member.login = login
    1.87  end
    1.88  
    1.89 -if member.name and not member.login then
    1.90 +if member.name and not util.is_profile_field_locked(member, "login") and not member.login then
    1.91    request.redirect{
    1.92      mode   = "redirect",
    1.93      module = "index",
    1.94 @@ -163,40 +176,43 @@
    1.95      end
    1.96    end  
    1.97  
    1.98 -  local password1 = param.get("password1")
    1.99 -  local password2 = param.get("password2")
   1.100 +  if not member.authority == "ldap" then
   1.101 +  
   1.102 +    local password1 = param.get("password1")
   1.103 +    local password2 = param.get("password2")
   1.104  
   1.105 -  if login and not password1 then
   1.106 -    request.redirect{
   1.107 -      mode   = "redirect",
   1.108 -      module = "index",
   1.109 -      view   = "register",
   1.110 -      params = { 
   1.111 -        code = member.invite_code,
   1.112 -        notify_email = notify_email,
   1.113 -        name = member.name,
   1.114 -        login = member.login
   1.115 +    if login and not password1 then
   1.116 +      request.redirect{
   1.117 +        mode   = "redirect",
   1.118 +        module = "index",
   1.119 +        view   = "register",
   1.120 +        params = { 
   1.121 +          code = member.invite_code,
   1.122 +          notify_email = notify_email,
   1.123 +          name = member.name,
   1.124 +          login = member.login
   1.125 +        }
   1.126        }
   1.127 -    }
   1.128 -  --]]
   1.129 -    return false
   1.130 +    --]]
   1.131 +      return false
   1.132 +    end
   1.133 +
   1.134 +    if password1 ~= password2 then
   1.135 +      slot.put_into("error", _"Passwords don't match!")
   1.136 +      return false
   1.137 +    end
   1.138 +
   1.139 +    if #password1 < 8 then
   1.140 +      slot.put_into("error", _"Passwords must consist of at least 8 characters!")
   1.141 +      return false
   1.142 +    end
   1.143    end
   1.144  
   1.145 -  if password1 ~= password2 then
   1.146 -    slot.put_into("error", _"Passwords don't match!")
   1.147 -    return false
   1.148 -  end
   1.149 -
   1.150 -  if #password1 < 8 then
   1.151 -    slot.put_into("error", _"Passwords must consist of at least 8 characters!")
   1.152 -    return false
   1.153 -  end
   1.154 -
   1.155 -  if not config.locked_profile_fields.login then
   1.156 +  if not util.is_profile_field_locked(member, "login") then
   1.157      member.login = login
   1.158    end
   1.159  
   1.160 -  if not config.locked_profile_fields.name then
   1.161 +  if not util.is_profile_field_locked(member, "name") then
   1.162      member.name = name
   1.163    end
   1.164  
   1.165 @@ -208,7 +224,9 @@
   1.166      end
   1.167    end
   1.168    
   1.169 -  member:set_password(password1)
   1.170 +  if not member.authority == "ldap" then
   1.171 +    member:set_password(password1)
   1.172 +  end
   1.173  
   1.174    local now = db:query("SELECT now() AS now", "object").now
   1.175  
   1.176 @@ -221,7 +239,7 @@
   1.177    member.active = true
   1.178    member.last_activity = 'now'
   1.179    member:save()
   1.180 -
   1.181 +  
   1.182    slot.put_into("notice", _"You've successfully registered and you can login now with your login and password!")
   1.183  
   1.184    request.redirect{

Impressum / About Us