comparison mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua @ 49:59f490390528

mod_adhoc, mod_adhoc_cmd_admin: Check permissions in one place for all commands
author Florian Zeitz <florob@babelmonkeys.de>
date Sat, 17 Oct 2009 01:37:25 +0200
parents 7fbaf590dc12
children e839b4453387
comparison
equal deleted inserted replaced
48:7fbaf590dc12 49:59f490390528
37 { name = "max_items", type = "list-single", label = "Maximum number of users", 37 { name = "max_items", type = "list-single", label = "Maximum number of users",
38 value = { "25", "50", "75", "100", "150", "200", "all" } }; 38 value = { "25", "50", "75", "100", "150", "200", "all" } };
39 }; 39 };
40 40
41 function add_user_command_handler(item, origin, stanza) 41 function add_user_command_handler(item, origin, stanza)
42 if not is_admin(stanza.attr.from) then
43 module:log("warn", "Non-admin %s tried to add a user", tostring(jid.bare(stanza.attr.from)));
44 origin.send(st.error_reply(stanza, "auth", "forbidden", "You don't have permission to add a user"):up()
45 :add_child(item:cmdtag("canceled")
46 :tag("note", {type="error"}):text("You don't have permission to add a user")));
47 return true;
48 end
49 if stanza.tags[1].attr.sessionid and sessions[stanza.tags[1].attr.sessionid] then 42 if stanza.tags[1].attr.sessionid and sessions[stanza.tags[1].attr.sessionid] then
50 if stanza.tags[1].attr.action == "cancel" then 43 if stanza.tags[1].attr.action == "cancel" then
51 origin.send(st.reply(stanza):add_child(item:cmdtag("canceled", stanza.tags[1].attr.sessionid))); 44 origin.send(st.reply(stanza):add_child(item:cmdtag("canceled", stanza.tags[1].attr.sessionid)));
52 sessions[stanza.tags[1].attr.sessionid] = nil; 45 sessions[stanza.tags[1].attr.sessionid] = nil;
53 return true; 46 return true;
94 end 87 end
95 return true; 88 return true;
96 end 89 end
97 90
98 function get_online_users_command_handler(item, origin, stanza) 91 function get_online_users_command_handler(item, origin, stanza)
99 if not is_admin(stanza.attr.from) then
100 origin.send(st.error_reply(stanza, "auth", "forbidden", "You don't have permission to request a list of online users"):up()
101 :add_child(item:cmdtag("canceled")
102 :tag("note", {type="error"}):text("You don't have permission to request a list of online users")));
103 return true;
104 end
105 if stanza.tags[1].attr.sessionid and sessions[stanza.tags[1].attr.sessionid] then 92 if stanza.tags[1].attr.sessionid and sessions[stanza.tags[1].attr.sessionid] then
106 if stanza.tags[1].attr.action == "cancel" then 93 if stanza.tags[1].attr.action == "cancel" then
107 origin.send(st.reply(stanza):add_child(item:cmdtag("canceled", stanza.tags[1].attr.sessionid))); 94 origin.send(st.reply(stanza):add_child(item:cmdtag("canceled", stanza.tags[1].attr.sessionid)));
108 sessions[stanza.tags[1].attr.sessionid] = nil; 95 sessions[stanza.tags[1].attr.sessionid] = nil;
109 return true; 96 return true;