Mercurial > prosody-modules
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, |