# HG changeset patch # User bsw # Date 1406060257 -7200 # Node ID aefef1556d5572ec9100d205372f5c5115f6eab9 # Parent f9c1acb859d0adb99853c8077ce452a346a8077f Removed usage of hstore from LDAP support diff -r f9c1acb859d0 -r aefef1556d55 app/main/index/_action/cancel_register.lua --- a/app/main/index/_action/cancel_register.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/app/main/index/_action/cancel_register.lua Tue Jul 22 22:17:37 2014 +0200 @@ -1,5 +1,6 @@ app.session.authority = nil -app.session.authority_data = nil +app.session.authority_uid = nil +app.session.authority_login = nil app.session:save() return true \ No newline at end of file diff -r f9c1acb859d0 -r aefef1556d55 app/main/index/_action/login.lua --- a/app/main/index/_action/login.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/app/main/index/_action/login.lua Tue Jul 22 22:17:37 2014 +0200 @@ -5,10 +5,8 @@ if err == "ldap_credentials_valid_but_no_member" then app.session.authority = "ldap" - app.session.authority_data = encode.pg_hstore{ - login = login, - uid = uid - } + app.session.authority_uid = uid + app.session.authority_login = login app.session:save() request.redirect{ module = "index", view = "register", params = { diff -r f9c1acb859d0 -r aefef1556d55 app/main/index/_action/register.lua --- a/app/main/index/_action/register.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/app/main/index/_action/register.lua Tue Jul 22 22:17:37 2014 +0200 @@ -6,7 +6,7 @@ if not config.ldap.member or not config.ldap.member.registration == "manual" then error("access denied") end - member = ldap.create_member(app.session.authority_data_uid, true) + member = ldap.create_member(app.session.authority_uid, true) else if config.registration_disabled then diff -r f9c1acb859d0 -r aefef1556d55 app/main/index/register.lua --- a/app/main/index/register.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/app/main/index/register.lua Tue Jul 22 22:17:37 2014 +0200 @@ -1,7 +1,7 @@ local ldap_uid if config.ldap.member and app.session.authority == "ldap" then - ldap_uid = app.session.authority_data_uid + ldap_uid = app.session.authority_uid end if config.registration_disabled and not ldap_uid then diff -r f9c1acb859d0 -r aefef1556d55 env/encode/pg_hstore.lua --- a/env/encode/pg_hstore.lua Fri Jul 18 23:13:19 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ --- Encodes a Lua table as PostgreSQL hstore text input --- TODO This should be implemented in the SQL abstraction layer - -function encode.pg_hstore(hstore_values) - - local entries = {} - - for key, val in pairs(hstore_values) do - local escaped_key = encode.pg_hstore_value(key) - local escaped_val = encode.pg_hstore_value(val) - entries[#entries+1] = escaped_key .. "=>" .. escaped_val - end - - return table.concat(entries, ", ") - -end diff -r f9c1acb859d0 -r aefef1556d55 env/encode/pg_hstore_value.lua --- a/env/encode/pg_hstore_value.lua Fri Jul 18 23:13:19 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ --- Formats a value (or a key) for usage in the text representation of --- hstore fields - -function encode.pg_hstore_value(value) - return '"' .. string.gsub(value, '([\\"])', "\\%1") .. '"' -end \ No newline at end of file diff -r f9c1acb859d0 -r aefef1556d55 env/ldap/create_member.lua --- a/env/ldap/create_member.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/env/ldap/create_member.lua Tue Jul 22 22:17:37 2014 +0200 @@ -15,9 +15,7 @@ member.authority = "ldap" - member.authority_data = encode.pg_hstore{ - uid = uid - } + member.authority_uid = uid local ldap_conn, ldap_entry, err, err2 = ldap.update_member_attr(member, nil, uid) @@ -25,10 +23,8 @@ ldap_conn:unbind() end - member.authority_data = encode.pg_hstore{ - uid = uid, - login = config.ldap.member.login_map(ldap_entry) - } + member.authority_uid = uid + member.authority_login = config.ldap.member.login_map(ldap_entry) if not err then return member diff -r f9c1acb859d0 -r aefef1556d55 env/ldap/test.lua --- a/env/ldap/test.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/env/ldap/test.lua Tue Jul 22 22:17:37 2014 +0200 @@ -37,8 +37,8 @@ end local members = Member:new_selector() - :add_field{ "authority_data->'login' as authority_data_login" } - :add_where{ "authority = ? AND authority_data->'uid' = ?", "ldap", uid } + :add_field{ "authority_login" } + :add_where{ "authority = ? AND authority_uid = ?", "ldap", uid } :exec() if #members < 1 then @@ -62,7 +62,7 @@ return end - test("login", login, member.authority_data_login) + test("login", login, member.authority_login) test("name", name, member.name) for i, unit_id in ipairs(units_with_voting_priv) do diff -r f9c1acb859d0 -r aefef1556d55 env/ldap/update_all_members.lua --- a/env/ldap/update_all_members.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/env/ldap/update_all_members.lua Tue Jul 22 22:17:37 2014 +0200 @@ -18,13 +18,13 @@ local function failure (err, err2) Member.get_db_conn():query("ROLLBACK") - io.stdout:write("ERROR: ", err, " (", err2, ") id=", tostring(member.id), " uid=", tostring(member.authority_data_uid), "\n") + io.stdout:write("ERROR: ", err, " (", err2, ") id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n") some_error_occured = true end local function success () Member.get_db_conn():query("COMMIT") - io.stdout:write("ok: id=", tostring(member.id), " uid=", tostring(member.authority_data_uid), "\n") + io.stdout:write("ok: id=", tostring(member.id), " uid=", tostring(member.authority_uid), "\n") end Member.get_db_conn():query("BEGIN") diff -r f9c1acb859d0 -r aefef1556d55 env/ldap/update_member_attr.lua --- a/env/ldap/update_member_attr.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/env/ldap/update_member_attr.lua Tue Jul 22 22:17:37 2014 +0200 @@ -21,7 +21,7 @@ return nil, nil, "member_is_not_authenticated_by_ldap" end - local filter = config.ldap.member.uid_filter_map(member.authority_data_uid or uid) + local filter = config.ldap.member.uid_filter_map(member.authority_uid or uid) local ldap_entry, err, err2 = ldap.get_member_entry(filter, ldap_conn) if err then @@ -38,10 +38,8 @@ -- If exactly one corresponding entry found, update the attributes local err = config.ldap.member.attr_map(ldap_entry, member) - member.authority_data = encode.pg_hstore{ - uid = member.authority_data_uid or uid, - login = config.ldap.member.login_map(ldap_entry) - } + member.authority_uid = member.authority_uid or uid + member.authority_login = config.ldap.member.login_map(ldap_entry) if err then return ldap_conn, ldap_entry, "attr_map_error", err diff -r f9c1acb859d0 -r aefef1556d55 model/member.lua --- a/model/member.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/model/member.lua Tue Jul 22 22:17:37 2014 +0200 @@ -278,7 +278,7 @@ local members = Member:new_selector() :add_where{ "authority = ?", authority } - :add_field("authority_data->'uid' as authority_data_uid") + :add_field("authority_uid") :exec() return members @@ -415,12 +415,12 @@ -- Get login name from LDAP entry if ldap_entry then uid = config.ldap.member.uid_map(ldap_entry) - selector:add_where{'"authority" = ? AND "authority_data"->\'uid\' = ?', "ldap", uid } + selector:add_where{'"authority" = ? AND "authority_uid" = ?', "ldap", uid } -- or build it from the login else login = config.ldap.member.login_normalizer(login) - selector:add_where{'"authority" = ? AND "authority_data"->\'login\' = ?', "ldap", login } + selector:add_where{'"authority" = ? AND "authority_uid" = ?', "ldap", login } end local member = selector:exec() @@ -489,10 +489,8 @@ end end -- TODO change this when SQL layers supports hstore - member.authority_data = encode.pg_hstore{ - uid = uid, - login = ldap_login - } + member.authority_uid = uid + member.authority_login = ldap_login member.activated = "now" member.last_activity = "now" if config.ldap.member.cache_passwords then diff -r f9c1acb859d0 -r aefef1556d55 model/session.lua --- a/model/session.lua Fri Jul 18 23:13:19 2014 +0200 +++ b/model/session.lua Tue Jul 22 22:17:37 2014 +0200 @@ -28,7 +28,7 @@ function Session:by_ident(ident) local selector = self:new_selector() selector:add_where{ 'ident = ?', ident } - selector:add_field{ '"authority_data" -> \'uid\' as authority_data_uid' } + selector:add_field{ 'authority_uid' } selector:optional_object_mode() return selector:exec() end