diff options
author | Kim Alvefur <zash@zash.se> | 2014-09-11 01:17:56 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2014-09-11 01:17:56 +0200 |
commit | 43df3959ab0c8801cb39c1d7eba96af8a3785064 (patch) | |
tree | 147e215854eea3b4657112876b5c45863c73acc8 /plugins/muc/util.lib.lua | |
parent | f41908a42c7e4f8397b52536e5e32c771b07a096 (diff) | |
parent | 534a115ec7aff123fa3358c500554d02b247e4a8 (diff) | |
download | prosody-43df3959ab0c8801cb39c1d7eba96af8a3785064.tar.gz prosody-43df3959ab0c8801cb39c1d7eba96af8a3785064.zip |
Merge 0.10->trunk
Diffstat (limited to 'plugins/muc/util.lib.lua')
-rw-r--r-- | plugins/muc/util.lib.lua | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/plugins/muc/util.lib.lua b/plugins/muc/util.lib.lua new file mode 100644 index 00000000..16deb543 --- /dev/null +++ b/plugins/muc/util.lib.lua @@ -0,0 +1,58 @@ +-- Prosody IM +-- Copyright (C) 2008-2010 Matthew Wild +-- Copyright (C) 2008-2010 Waqas Hussain +-- Copyright (C) 2014 Daurnimator +-- +-- This project is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- + +local _M = {}; + +_M.valid_affiliations = { + outcast = -1; + none = 0; + member = 1; + admin = 2; + owner = 3; +}; + +_M.valid_roles = { + none = 0; + visitor = 1; + participant = 2; + moderator = 3; +}; + +local kickable_error_conditions = { + ["gone"] = true; + ["internal-server-error"] = true; + ["item-not-found"] = true; + ["jid-malformed"] = true; + ["recipient-unavailable"] = true; + ["redirect"] = true; + ["remote-server-not-found"] = true; + ["remote-server-timeout"] = true; + ["service-unavailable"] = true; + ["malformed error"] = true; +}; +function _M.is_kickable_error(stanza) + local cond = select(2, stanza:get_error()) or "malformed error"; + return kickable_error_conditions[cond]; +end + +local muc_x_filters = { + ["http://jabber.org/protocol/muc"] = true; + ["http://jabber.org/protocol/muc#user"] = true; +} +local function muc_x_filter(tag) + if muc_x_filters[tag.attr.xmlns] then + return nil; + end + return tag; +end +function _M.filter_muc_x(stanza) + return stanza:maptags(muc_x_filter); +end + +return _M; |