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; |