plugins/adhoc/mod_adhoc.lua
changeset 9225 fe8abac62682
parent 8566 50f2ad088589
child 9334 2f634cc02eac
equal deleted inserted replaced
9224:6dc1aeefa876 9225:fe8abac62682
    67 		end
    67 		end
    68 	end
    68 	end
    69 	event.exists = true;
    69 	event.exists = true;
    70 end);
    70 end);
    71 
    71 
    72 module:hook("iq/host/"..xmlns_cmd..":command", function (event)
    72 module:hook("iq-set/host/"..xmlns_cmd..":command", function (event)
    73 	local origin, stanza = event.origin, event.stanza;
    73 	local origin, stanza = event.origin, event.stanza;
    74 	if stanza.attr.type == "set" then
    74 	local node = stanza.tags[1].attr.node
    75 		local node = stanza.tags[1].attr.node
    75 	local command = commands[node];
    76 		local command = commands[node];
    76 	if command then
    77 		if command then
    77 		local from = stanza.attr.from;
    78 			local from = stanza.attr.from;
    78 		local admin = is_admin(from, stanza.attr.to);
    79 			local admin = is_admin(from, stanza.attr.to);
    79 		local global_admin = is_admin(from);
    80 			local global_admin = is_admin(from);
    80 		local username, hostname = jid_split(from);
    81 			local username, hostname = jid_split(from);
    81 		if (command.permission == "admin" and not admin)
    82 			if (command.permission == "admin" and not admin)
    82 		    or (command.permission == "global_admin" and not global_admin)
    83 			    or (command.permission == "global_admin" and not global_admin)
    83 		    or (command.permission == "local_user" and hostname ~= module.host) then
    84 			    or (command.permission == "local_user" and hostname ~= module.host) then
    84 			origin.send(st.error_reply(stanza, "auth", "forbidden", "You don't have permission to execute this command"):up()
    85 				origin.send(st.error_reply(stanza, "auth", "forbidden", "You don't have permission to execute this command"):up()
    85 			    :add_child(commands[node]:cmdtag("canceled")
    86 				    :add_child(commands[node]:cmdtag("canceled")
    86 				:tag("note", {type="error"}):text("You don't have permission to execute this command")));
    87 					:tag("note", {type="error"}):text("You don't have permission to execute this command")));
    87 			return true
    88 				return true
       
    89 			end
       
    90 			-- User has permission now execute the command
       
    91 			adhoc_handle_cmd(commands[node], origin, stanza);
       
    92 			return true;
       
    93 		end
    88 		end
       
    89 		-- User has permission now execute the command
       
    90 		adhoc_handle_cmd(commands[node], origin, stanza);
       
    91 		return true;
    94 	end
    92 	end
    95 end, 500);
    93 end, 500);
    96 
    94 
    97 local function adhoc_added(event)
    95 local function adhoc_added(event)
    98 	local item = event.item;
    96 	local item = event.item;