diff options
author | Kim Alvefur <zash@zash.se> | 2018-06-02 20:15:32 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2018-06-02 20:15:32 +0200 |
commit | 8286e6344d13e59b090cdff204e61750dd7a5a29 (patch) | |
tree | 719ee4568e427514f501400210b3c4795d140d79 /plugins/muc/moderated.lib.lua | |
parent | 7bc9f73c736d558386cfbce9d57a7dddd0b5479b (diff) | |
download | prosody-8286e6344d13e59b090cdff204e61750dd7a5a29.tar.gz prosody-8286e6344d13e59b090cdff204e61750dd7a5a29.zip |
MUC: Move voice request into its own lib
Diffstat (limited to 'plugins/muc/moderated.lib.lua')
-rw-r--r-- | plugins/muc/moderated.lib.lua | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/plugins/muc/moderated.lib.lua b/plugins/muc/moderated.lib.lua index 6e82c71f..8354c585 100644 --- a/plugins/muc/moderated.lib.lua +++ b/plugins/muc/moderated.lib.lua @@ -7,9 +7,6 @@ -- COPYING file in the source package for more information. -- -local st = require "util.stanza"; -local jid_resource = require "util.jid".resource; - local function get_moderated(room) return room._data.moderated; end @@ -48,58 +45,6 @@ module:hook("muc-get-default-role", function(event) end end, 1); -module:hook("muc-voice-request", function(event) - if event.occupant.role == "visitor" then - local form = event.room:get_voice_form_layout() - local nick = jid_resource(event.occupant.nick); - local formdata = { - ["muc#jid"] = event.stanza.attr.from; - ["muc#roomnick"] = nick; - }; - - local message = st.message({ type = "normal"; from = event.room.jid }):add_child(form:form(formdata)):up(); - - event.room:broadcast(message, function (_, occupant) - return occupant.role == "moderator"; - end); - end -end); - -module:hook("muc-voice-response", function(event) - local actor = event.stanza.attr.from; - local affected_occupant = event.room:get_occupant_by_real_jid(event.fields["muc#jid"]); - local occupant = event.occupant; - - if occupant.role ~= "moderator" then - module:log("debug", "%s tried to grant voice but wasn't a moderator", jid_resource(occupant.nick)); - return; - end - - if not event.fields["muc#request_allow"] then - module:log("debug", "%s did not grant voice", jid_resource(occupant.nick)); - return; - end - - if not affected_occupant then - module:log("debug", "%s tried to grant voice to unknown occupant %s", jid_resource(occupant.nick), event.fields["muc#jid"]); - return; - end - - if affected_occupant.role ~= "visitor" then - module:log("debug", "%s tried to grant voice to %s but they already have it", jid_resource(occupant.nick), jid_resource(occupant.jid)); - return; - end - - module:log("debug", "%s granted voice to %s", jid_resource(event.occupant.nick), jid_resource(occupant.jid)); - local ok, errtype, err = event.room:set_role(actor, affected_occupant.nick, "participant", "Voice granted"); - - if not ok then - module:log("debug", "Error granting voice: %s", err or errtype); - event.origin.send(st.error_reply(event.stanza, errtype, err)); - end -end); - - return { get = get_moderated; set = set_moderated; |