Provide the “realname_customization” option

ref #3136
This commit is contained in:
Florent Le Coz
2015-10-12 16:47:27 +02:00
parent 6512f830fa
commit 84aafab604
3 changed files with 41 additions and 27 deletions
+6
View File
@@ -77,6 +77,12 @@ The configuration file uses a simple format of the form
users join their own IRC server using an XMPP client, while forbidding users join their own IRC server using an XMPP client, while forbidding
access to any other IRC server. access to any other IRC server.
`realname_customization`
If this option is set to “false” (default is “true”), the users will not be
able to use the ad-hoc commands that lets them configure their realname and
username.
`log_file` `log_file`
A filename into which logs are written. If none is provided, the logs are A filename into which logs are written. If none is provided, the logs are
+9 -5
View File
@@ -6,6 +6,7 @@
#include <irc/irc_user.hpp> #include <irc/irc_user.hpp>
#include <logger/logger.hpp> #include <logger/logger.hpp>
#include <config/config.hpp>
#include <utils/tolower.hpp> #include <utils/tolower.hpp>
#include <utils/split.hpp> #include <utils/split.hpp>
@@ -120,11 +121,14 @@ void IrcClient::on_connected()
this->send_nick_command(this->username); this->send_nick_command(this->username);
#ifdef USE_DATABASE #ifdef USE_DATABASE
if (!options.username.value().empty()) if (Config::get("realname_customization", "true") == "true")
this->username = options.username.value(); {
if (!options.realname.value().empty()) if (!options.username.value().empty())
this->realname = options.realname.value(); this->username = options.username.value();
this->send_user_command(username, realname); if (!options.realname.value().empty())
this->realname = options.realname.value();
this->send_user_command(username, realname);
}
#endif #endif
this->send_user_command(this->username, this->realname); this->send_user_command(this->username, this->realname);
+26 -22
View File
@@ -1,6 +1,7 @@
#include <xmpp/biboumi_adhoc_commands.hpp> #include <xmpp/biboumi_adhoc_commands.hpp>
#include <xmpp/biboumi_component.hpp> #include <xmpp/biboumi_component.hpp>
#include <bridge/bridge.hpp> #include <bridge/bridge.hpp>
#include <config/config.hpp>
#include <utils/string.hpp> #include <utils/string.hpp>
#include <utils/split.hpp> #include <utils/split.hpp>
#include <xmpp/jid.hpp> #include <xmpp/jid.hpp>
@@ -191,31 +192,34 @@ void ConfigureIrcServerStep1(XmppComponent*, AdhocSession& session, XmlNode& com
after_cnt_cmd.add_child(required); after_cnt_cmd.add_child(required);
x.add_child(std::move(after_cnt_cmd)); x.add_child(std::move(after_cnt_cmd));
XmlNode username("field"); if (Config::get("realname_customization", "true") == "true")
username["var"] = "username";
username["type"] = "text-single";
username["label"] = "Username";
if (!options.username.value().empty())
{ {
XmlNode username_value("value"); XmlNode username("field");
username_value.set_inner(options.username.value()); username["var"] = "username";
username.add_child(std::move(username_value)); username["type"] = "text-single";
} username["label"] = "Username";
username.add_child(required); if (!options.username.value().empty())
x.add_child(std::move(username)); {
XmlNode username_value("value");
username_value.set_inner(options.username.value());
username.add_child(std::move(username_value));
}
username.add_child(required);
x.add_child(std::move(username));
XmlNode realname("field"); XmlNode realname("field");
realname["var"] = "realname"; realname["var"] = "realname";
realname["type"] = "text-single"; realname["type"] = "text-single";
realname["label"] = "Realname"; realname["label"] = "Realname";
if (!options.realname.value().empty()) if (!options.realname.value().empty())
{ {
XmlNode realname_value("value"); XmlNode realname_value("value");
realname_value.set_inner(options.realname.value()); realname_value.set_inner(options.realname.value());
realname.add_child(std::move(realname_value)); realname.add_child(std::move(realname_value));
}
realname.add_child(required);
x.add_child(std::move(realname));
} }
realname.add_child(required);
x.add_child(std::move(realname));
command_node.add_child(std::move(x)); command_node.add_child(std::move(x));
} }