liquid_feedback_frontend

changeset 1074:aefef1556d55

Removed usage of hstore from LDAP support
author bsw
date Tue Jul 22 22:17:37 2014 +0200 (2014-07-22)
parents f9c1acb859d0
children a85f7ea61ef6
files app/main/index/_action/cancel_register.lua app/main/index/_action/login.lua app/main/index/_action/register.lua app/main/index/register.lua env/encode/pg_hstore.lua env/encode/pg_hstore_value.lua env/ldap/create_member.lua env/ldap/test.lua env/ldap/update_all_members.lua env/ldap/update_member_attr.lua model/member.lua model/session.lua
line diff
     1.1 --- a/app/main/index/_action/cancel_register.lua	Fri Jul 18 23:13:19 2014 +0200
     1.2 +++ b/app/main/index/_action/cancel_register.lua	Tue Jul 22 22:17:37 2014 +0200
     1.3 @@ -1,5 +1,6 @@
     1.4  app.session.authority = nil
     1.5 -app.session.authority_data = nil
     1.6 +app.session.authority_uid = nil
     1.7 +app.session.authority_login = nil
     1.8  app.session:save()
     1.9  
    1.10  return true
    1.11 \ No newline at end of file
     2.1 --- a/app/main/index/_action/login.lua	Fri Jul 18 23:13:19 2014 +0200
     2.2 +++ b/app/main/index/_action/login.lua	Tue Jul 22 22:17:37 2014 +0200
     2.3 @@ -5,10 +5,8 @@
     2.4  
     2.5  if err == "ldap_credentials_valid_but_no_member" then
     2.6    app.session.authority = "ldap"
     2.7 -  app.session.authority_data = encode.pg_hstore{
     2.8 -    login = login,
     2.9 -    uid = uid
    2.10 -  }
    2.11 +  app.session.authority_uid = uid
    2.12 +  app.session.authority_login = login
    2.13    app.session:save()
    2.14    request.redirect{
    2.15      module = "index", view = "register", params = {
     3.1 --- a/app/main/index/_action/register.lua	Fri Jul 18 23:13:19 2014 +0200
     3.2 +++ b/app/main/index/_action/register.lua	Tue Jul 22 22:17:37 2014 +0200
     3.3 @@ -6,7 +6,7 @@
     3.4    if not config.ldap.member or not config.ldap.member.registration == "manual" then
     3.5      error("access denied")
     3.6    end
     3.7 -  member = ldap.create_member(app.session.authority_data_uid, true)
     3.8 +  member = ldap.create_member(app.session.authority_uid, true)
     3.9    
    3.10  else
    3.11    if config.registration_disabled then
     4.1 --- a/app/main/index/register.lua	Fri Jul 18 23:13:19 2014 +0200
     4.2 +++ b/app/main/index/register.lua	Tue Jul 22 22:17:37 2014 +0200
     4.3 @@ -1,7 +1,7 @@
     4.4  local ldap_uid
     4.5  
     4.6  if config.ldap.member and app.session.authority == "ldap" then
     4.7 -  ldap_uid = app.session.authority_data_uid
     4.8 +  ldap_uid = app.session.authority_uid
     4.9  end
    4.10  
    4.11  if config.registration_disabled and not ldap_uid then
     5.1 --- a/env/encode/pg_hstore.lua	Fri Jul 18 23:13:19 2014 +0200
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,16 +0,0 @@
     5.4 --- Encodes a Lua table as PostgreSQL hstore text input
     5.5 --- TODO This should be implemented in the SQL abstraction layer
     5.6 -
     5.7 -function encode.pg_hstore(hstore_values)
     5.8 -
     5.9 -  local entries = {}
    5.10 -  
    5.11 -  for key, val in pairs(hstore_values) do
    5.12 -    local escaped_key = encode.pg_hstore_value(key)
    5.13 -    local escaped_val = encode.pg_hstore_value(val)
    5.14 -    entries[#entries+1] = escaped_key .. "=>" .. escaped_val
    5.15 -  end
    5.16 -
    5.17 -  return table.concat(entries, ", ")
    5.18 -
    5.19 -end
     6.1 --- a/env/encode/pg_hstore_value.lua	Fri Jul 18 23:13:19 2014 +0200
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,6 +0,0 @@
     6.4 --- Formats a value (or a key) for usage in the text representation of
     6.5 --- hstore fields
     6.6 -
     6.7 -function encode.pg_hstore_value(value)
     6.8 -  return '"' .. string.gsub(value, '([\\"])', "\\%1") .. '"'
     6.9 -end
    6.10 \ No newline at end of file
     7.1 --- a/env/ldap/create_member.lua	Fri Jul 18 23:13:19 2014 +0200
     7.2 +++ b/env/ldap/create_member.lua	Tue Jul 22 22:17:37 2014 +0200
     7.3 @@ -15,9 +15,7 @@
     7.4  
     7.5    member.authority = "ldap"
     7.6  
     7.7 -  member.authority_data = encode.pg_hstore{
     7.8 -    uid = uid
     7.9 -  }
    7.10 +  member.authority_uid = uid
    7.11    
    7.12    local ldap_conn, ldap_entry, err, err2 = ldap.update_member_attr(member, nil, uid)
    7.13    
    7.14 @@ -25,10 +23,8 @@
    7.15      ldap_conn:unbind()
    7.16    end
    7.17    
    7.18 -  member.authority_data = encode.pg_hstore{
    7.19 -    uid = uid,
    7.20 -    login = config.ldap.member.login_map(ldap_entry)
    7.21 -  }
    7.22 +  member.authority_uid = uid
    7.23 +  member.authority_login = config.ldap.member.login_map(ldap_entry)
    7.24    
    7.25    if not err then
    7.26      return member
     8.1 --- a/env/ldap/test.lua	Fri Jul 18 23:13:19 2014 +0200
     8.2 +++ b/env/ldap/test.lua	Tue Jul 22 22:17:37 2014 +0200
     8.3 @@ -37,8 +37,8 @@
     8.4      end
     8.5      
     8.6      local members = Member:new_selector()
     8.7 -      :add_field{ "authority_data->'login' as authority_data_login" }
     8.8 -      :add_where{ "authority = ? AND authority_data->'uid' = ?", "ldap", uid }
     8.9 +      :add_field{ "authority_login" }
    8.10 +      :add_where{ "authority = ? AND authority_uid = ?", "ldap", uid }
    8.11        :exec()
    8.12  
    8.13      if #members < 1 then
    8.14 @@ -62,7 +62,7 @@
    8.15        return
    8.16      end
    8.17        
    8.18 -    test("login", login, member.authority_data_login)
    8.19 +    test("login", login, member.authority_login)
    8.20      test("name", name, member.name)
    8.21      
    8.22      for i, unit_id in ipairs(units_with_voting_priv) do
     9.1 --- a/env/ldap/update_all_members.lua	Fri Jul 18 23:13:19 2014 +0200
     9.2 +++ b/env/ldap/update_all_members.lua	Tue Jul 22 22:17:37 2014 +0200
     9.3 @@ -18,13 +18,13 @@
     9.4  
     9.5      local function failure (err, err2)
     9.6        Member.get_db_conn():query("ROLLBACK")
     9.7 -      io.stdout:write("ERROR: ", err, " (", err2, ") id=", tostring(member.id), " uid=", tostring(member.authority_data_uid), "\n")
     9.8 +      io.stdout:write("ERROR: ", err, " (", err2, ") id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n")
     9.9        some_error_occured = true
    9.10      end
    9.11      
    9.12      local function success ()
    9.13        Member.get_db_conn():query("COMMIT")
    9.14 -      io.stdout:write("ok: id=", tostring(member.id), " uid=", tostring(member.authority_data_uid), "\n")
    9.15 +      io.stdout:write("ok: id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n")
    9.16      end
    9.17  
    9.18      Member.get_db_conn():query("BEGIN")
    10.1 --- a/env/ldap/update_member_attr.lua	Fri Jul 18 23:13:19 2014 +0200
    10.2 +++ b/env/ldap/update_member_attr.lua	Tue Jul 22 22:17:37 2014 +0200
    10.3 @@ -21,7 +21,7 @@
    10.4      return nil, nil, "member_is_not_authenticated_by_ldap"
    10.5    end
    10.6    
    10.7 -  local filter = config.ldap.member.uid_filter_map(member.authority_data_uid or uid)
    10.8 +  local filter = config.ldap.member.uid_filter_map(member.authority_uid or uid)
    10.9    local ldap_entry, err, err2 = ldap.get_member_entry(filter, ldap_conn)
   10.10  
   10.11    if err then
   10.12 @@ -38,10 +38,8 @@
   10.13    -- If exactly one corresponding entry found, update the attributes
   10.14    local err = config.ldap.member.attr_map(ldap_entry, member)
   10.15    
   10.16 -  member.authority_data = encode.pg_hstore{
   10.17 -    uid = member.authority_data_uid or uid,
   10.18 -    login = config.ldap.member.login_map(ldap_entry)
   10.19 -  }
   10.20 +  member.authority_uid = member.authority_uid or uid
   10.21 +  member.authority_login = config.ldap.member.login_map(ldap_entry)
   10.22    
   10.23    if err then
   10.24      return ldap_conn, ldap_entry, "attr_map_error", err
    11.1 --- a/model/member.lua	Fri Jul 18 23:13:19 2014 +0200
    11.2 +++ b/model/member.lua	Tue Jul 22 22:17:37 2014 +0200
    11.3 @@ -278,7 +278,7 @@
    11.4    
    11.5    local members = Member:new_selector()
    11.6      :add_where{ "authority = ?", authority }
    11.7 -    :add_field("authority_data->'uid' as authority_data_uid")
    11.8 +    :add_field("authority_uid")
    11.9      :exec()
   11.10      
   11.11    return members
   11.12 @@ -415,12 +415,12 @@
   11.13      -- Get login name from LDAP entry
   11.14      if ldap_entry then
   11.15        uid = config.ldap.member.uid_map(ldap_entry)
   11.16 -      selector:add_where{'"authority" = ? AND "authority_data"->\'uid\' = ?', "ldap", uid }
   11.17 +      selector:add_where{'"authority" = ? AND "authority_uid" = ?', "ldap", uid }
   11.18  
   11.19      -- or build it from the login
   11.20      else
   11.21        login = config.ldap.member.login_normalizer(login)
   11.22 -      selector:add_where{'"authority" = ? AND "authority_data"->\'login\' = ?', "ldap", login }
   11.23 +      selector:add_where{'"authority" = ? AND "authority_uid" = ?', "ldap", login }
   11.24      end
   11.25      
   11.26      local member = selector:exec()
   11.27 @@ -489,10 +489,8 @@
   11.28            end
   11.29          end
   11.30          -- TODO change this when SQL layers supports hstore
   11.31 -        member.authority_data = encode.pg_hstore{
   11.32 -          uid = uid,
   11.33 -          login = ldap_login
   11.34 -        }
   11.35 +        member.authority_uid = uid
   11.36 +        member.authority_login = ldap_login
   11.37          member.activated = "now"
   11.38          member.last_activity = "now"
   11.39          if config.ldap.member.cache_passwords then
    12.1 --- a/model/session.lua	Fri Jul 18 23:13:19 2014 +0200
    12.2 +++ b/model/session.lua	Tue Jul 22 22:17:37 2014 +0200
    12.3 @@ -28,7 +28,7 @@
    12.4  function Session:by_ident(ident)
    12.5    local selector = self:new_selector()
    12.6    selector:add_where{ 'ident = ?', ident }
    12.7 -  selector:add_field{ '"authority_data" -> \'uid\' as authority_data_uid' }
    12.8 +  selector:add_field{ 'authority_uid' }
    12.9    selector:optional_object_mode()
   12.10    return selector:exec()
   12.11  end

Impressum / About Us