mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua
changeset 49 59f490390528
parent 48 7fbaf590dc12
child 67 e839b4453387
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;