comparison mod_auth_ldap2/mod_auth_ldap2.lua @ 3869:f2b29183ef08

mod_auth_ldap, mod_auth_ldap2: Ensure is_admin() checks of remote JIDs never return positive
author Matthew Wild <mwild1@gmail.com>
date Mon, 27 Jan 2020 16:37:23 +0000
parents 490cb9161c81
children
comparison
equal deleted inserted replaced
3868:09e7e880e056 3869:f2b29183ef08
57 }; 57 };
58 return new_sasl(module.host, testpass_authentication_profile); 58 return new_sasl(module.host, testpass_authentication_profile);
59 end 59 end
60 60
61 function provider.is_admin(jid) 61 function provider.is_admin(jid)
62 local username, userhost = jsplit(jid);
63 if userhost ~= module.host then
64 return false;
65 end
62 local admin_config = ldap.getparams().admin; 66 local admin_config = ldap.getparams().admin;
63 67
64 if not admin_config then 68 if not admin_config then
65 return; 69 return;
66 end 70 end
67 71
68 local ld = ldap:getconnection(); 72 local ld = ldap:getconnection();
69 local username = jsplit(jid);
70 local filter = ldap.filter.combine_and(admin_config.filter, admin_config.namefield .. '=' .. username); 73 local filter = ldap.filter.combine_and(admin_config.filter, admin_config.namefield .. '=' .. username);
71 74
72 return ldap.singlematch { 75 return ldap.singlematch {
73 base = admin_config.basedn, 76 base = admin_config.basedn,
74 filter = filter, 77 filter = filter,