summaryrefslogtreecommitdiff
path: root/louloulibs
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2015-06-09 14:52:46 +0200
committerFlorent Le Coz <louiz@louiz.org>2015-06-09 14:52:46 +0200
commit7f7c429ae4c49e856a43816138991135ffb7f840 (patch)
treec053e2c425245ba4cb366aecdf9a3663f9ab803b /louloulibs
parent8da03f98307e03a767cb68659c8473c896cbd325 (diff)
downloadbiboumi-7f7c429ae4c49e856a43816138991135ffb7f840.tar.gz
biboumi-7f7c429ae4c49e856a43816138991135ffb7f840.tar.bz2
biboumi-7f7c429ae4c49e856a43816138991135ffb7f840.tar.xz
biboumi-7f7c429ae4c49e856a43816138991135ffb7f840.zip
Do not send the admin-only adhoc commands to non-admin users
They were not able to execute them anyway, so this was just a little usability issue.
Diffstat (limited to 'louloulibs')
-rw-r--r--louloulibs/xmpp/xmpp_component.cpp4
-rw-r--r--louloulibs/xmpp/xmpp_component.hpp3
2 files changed, 5 insertions, 2 deletions
diff --git a/louloulibs/xmpp/xmpp_component.cpp b/louloulibs/xmpp/xmpp_component.cpp
index 1048f86..8e89208 100644
--- a/louloulibs/xmpp/xmpp_component.cpp
+++ b/louloulibs/xmpp/xmpp_component.cpp
@@ -651,7 +651,7 @@ void XmppComponent::send_version(const std::string& id, const std::string& jid_t
this->send_stanza(iq);
}
-void XmppComponent::send_adhoc_commands_list(const std::string& id, const std::string& requester_jid)
+void XmppComponent::send_adhoc_commands_list(const std::string& id, const std::string& requester_jid, const bool with_admin_only)
{
Stanza iq("iq");
iq["type"] = "result";
@@ -663,6 +663,8 @@ void XmppComponent::send_adhoc_commands_list(const std::string& id, const std::s
query["node"] = ADHOC_NS;
for (const auto& kv: this->adhoc_commands_handler.get_commands())
{
+ if (kv.second.is_admin_only() && !with_admin_only)
+ continue;
XmlNode item("item");
item["jid"] = this->served_hostname;
item["node"] = kv.first;
diff --git a/louloulibs/xmpp/xmpp_component.hpp b/louloulibs/xmpp/xmpp_component.hpp
index 1bea54e..e45bb36 100644
--- a/louloulibs/xmpp/xmpp_component.hpp
+++ b/louloulibs/xmpp/xmpp_component.hpp
@@ -184,7 +184,8 @@ public:
* Send the list of all available ad-hoc commands to that JID. The list is
* different depending on what JID made the request.
*/
- void send_adhoc_commands_list(const std::string& id, const std::string& requester_jid);
+ void send_adhoc_commands_list(const std::string& id, const std::string& requester_jid,
+ const bool with_admin_only);
/**
* Send an iq version request
*/