Software /
code /
prosody
Changeset
3376:529bc6ea24e2
Merge Zash->trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 16 Jul 2010 15:10:45 +0100 |
parents | 3374:ce52f1d5cb74 (current diff) 3375:29e51e1c7c3d (diff) |
children | 3378:bb49ada7cf45 |
files | |
diffstat | 2 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_util_jid.lua Thu Jul 15 21:14:07 2010 +0200 +++ b/tests/test_util_jid.lua Fri Jul 16 15:10:45 2010 +0100 @@ -54,3 +54,14 @@ assert_equal(bare("user@host/"), nil, "invalid JID is nil"); end +function compare(compare) + assert_equal(compare("host", "host"), true, "host should match"); + assert_equal(compare("host", "other-host"), false, "host should not match"); + assert_equal(compare("other-user@host/resource", "host"), true, "host should match"); + assert_equal(compare("other-user@host", "user@host"), false, "user should not match"); + assert_equal(compare("user@host", "host"), true, "host should match"); + assert_equal(compare("user@host/resource", "host"), true, "host should match"); + assert_equal(compare("user@host/resource", "user@host"), true, "user and host should match"); + assert_equal(compare("user@other-host", "host"), false, "host should not match"); + assert_equal(compare("user@other-host", "user@host"), false, "host should not match"); +end
--- a/util/jid.lua Thu Jul 15 21:14:07 2010 +0200 +++ b/util/jid.lua Fri Jul 16 15:10:45 2010 +0100 @@ -78,4 +78,17 @@ return nil; -- Invalid JID end +function compare(jid, acl) + -- compare jid to single acl rule + -- TODO compare to table of rules? + local jid_node, jid_host, jid_resource = _split(jid); + local acl_node, acl_host, acl_resource = _split(acl); + if ((acl_node ~= nil and acl_node == jid_node) or acl_node == nil) and + ((acl_host ~= nil and acl_host == jid_host) or acl_host == nil) and + ((acl_resource ~= nil and acl_resource == jid_resource) or acl_resource == nil) then + return true + end + return false +end + return _M;