diff options
Diffstat (limited to 'modules/core/os_set.cpp')
-rw-r--r-- | modules/core/os_set.cpp | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/modules/core/os_set.cpp b/modules/core/os_set.cpp deleted file mode 100644 index 2a50f851c..000000000 --- a/modules/core/os_set.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* OperServ core functions - * - * (C) 2003-2011 Anope Team - * Contact us at team@anope.org - * - * Please read COPYING and README for further details. - * - * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - */ - -/*************************************************************************/ - -#include "module.h" - -class CommandOSSet : public Command -{ - private: - void DoList(CommandSource &source) - { - Log(LOG_ADMIN, source.u, this); - - Anope::string index; - - index = readonly ? _("%s is enabled") : _("%s is disabled"); - source.Reply(index.c_str(), "READONLY"); - index = debug ? _("%s is enabled") : _("%s is disabled"); - source.Reply(index.c_str(), "DEBUG"); - index = noexpire ? _("%s is enabled") : _("%s is disabled"); - source.Reply(index.c_str(), "NOEXPIRE"); - - return; - } - - void DoSetReadOnly(CommandSource &source, const std::vector<Anope::string> ¶ms) - { - User *u = source.u; - const Anope::string &setting = params.size() > 1 ? params[1] : ""; - - if (setting.empty()) - { - this->OnSyntaxError(source, "READONLY"); - return; - } - - if (setting.equals_ci("ON")) - { - readonly = true; - Log(LOG_ADMIN, u, this) << "READONLY ON"; - source.Reply(_("Services are now in \002read-only\002 mode.")); - } - else if (setting.equals_ci("OFF")) - { - readonly = false; - Log(LOG_ADMIN, u, this) << "READONLY OFF"; - source.Reply(_("Services are now in \002read-write\002 mode.")); - } - else - source.Reply(_("Setting for READONLY must be \002on\002 or \002off\002.")); - - return; - } - - void DoSetSuperAdmin(CommandSource &source, const std::vector<Anope::string> ¶ms) - { - User *u = source.u; - const Anope::string &setting = params.size() > 1 ? params[1] : ""; - - if (setting.empty()) - { - this->OnSyntaxError(source, "SUPERADMIN"); - return; - } - - /** - * Allow the user to turn super admin on/off - * - * Rob - **/ - if (!Config->SuperAdmin) - source.Reply(_("SuperAdmin setting not enabled in services.conf")); - else if (setting.equals_ci("ON")) - { - u->isSuperAdmin = 1; - source.Reply(_("You are now a SuperAdmin")); - Log(LOG_ADMIN, u, this) << "SUPERADMIN ON"; - ircdproto->SendGlobops(source.owner, _("%s is now a Super-Admin"), u->nick.c_str()); - } - else if (setting.equals_ci("OFF")) - { - u->isSuperAdmin = 0; - source.Reply(_("You are no longer a SuperAdmin")); - Log(LOG_ADMIN, u, this) << "SUPERADMIN OFF"; - ircdproto->SendGlobops(source.owner, _("%s is no longer a Super-Admin"), u->nick.c_str()); - } - else - source.Reply(_("Setting for SuperAdmin must be \002on\002 or \002off\002 (must be enabled in services.conf)")); - - return; - } - - void DoSetDebug(CommandSource &source, const std::vector<Anope::string> ¶ms) - { - User *u = source.u; - const Anope::string &setting = params.size() > 1 ? params[1] : ""; - - if (setting.empty()) - { - this->OnSyntaxError(source, "DEBUG"); - return; - } - - if (setting.equals_ci("ON")) - { - debug = 1; - Log(LOG_ADMIN, u, this) << "DEBUG ON"; - source.Reply(_("Services are now in debug mode.")); - } - else if (setting.equals_ci("OFF") || (setting[0] == '0' && setting.is_number_only() && !convertTo<int>(setting))) - { - Log(LOG_ADMIN, u, this) << "DEBUG OFF"; - debug = 0; - source.Reply(_("Services are now in non-debug mode.")); - } - else - { - try - { - debug = convertTo<int>(setting); - Log(LOG_ADMIN, u, this) << "DEBUG " << debug; - source.Reply(_("Services are now in debug mode (level %d)."), debug); - return; - } - catch (const ConvertException &) { } - - source.Reply(_("Setting for DEBUG must be \002ON\002, \002OFF\002, or a positive number.")); - } - - return; - } - - void DoSetNoExpire(CommandSource &source, const std::vector<Anope::string> ¶ms) - { - User *u = source.u; - const Anope::string &setting = params.size() > 1 ? params[1] : ""; - - if (setting.empty()) - { - this->OnSyntaxError(source, "NOEXPIRE"); - return; - } - - if (setting.equals_ci("ON")) - { - noexpire = true; - Log(LOG_ADMIN, u, this) << "NOEXPIRE ON"; - source.Reply(_("Services are now in \002no expire\002 mode.")); - } - else if (setting.equals_ci("OFF")) - { - noexpire = false; - Log(LOG_ADMIN, u, this) << "NOEXPIRE OFF"; - source.Reply(_("Services are now in \002expire\002 mode.")); - } - else - source.Reply(_("Setting for NOEXPIRE must be \002on\002 or \002off\002.")); - - return; - } - public: - CommandOSSet(Module *creator) : Command(creator, "operserv/set", 1, 2) - { - this->SetDesc(_("Set various global Services options")); - this->SetSyntax(_("\037option\037 \037setting\037")); - } - - void Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) - { - const Anope::string &option = params[0]; - - if (option.equals_ci("LIST")) - return this->DoList(source); - else if (option.equals_ci("READONLY")) - return this->DoSetReadOnly(source, params); - else if (option.equals_ci("SUPERADMIN")) - return this->DoSetSuperAdmin(source, params); - else if (option.equals_ci("DEBUG")) - return this->DoSetDebug(source, params); - else if (option.equals_ci("NOEXPIRE")) - return this->DoSetNoExpire(source, params); - else - source.Reply(_("Unknown option \002%s\002."), option.c_str()); - - return; - } - - bool OnHelp(CommandSource &source, const Anope::string &subcommand) - { - if (subcommand.empty()) - { - this->SendSyntax(source); - source.Reply(" "); - source.Reply(_("Sets various global Services options. Option names\n" - "currently defined are:\n" - " READONLY Set read-only or read-write mode\n" - " DEBUG Activate or deactivate debug mode\n" - " NOEXPIRE Activate or deactivate no expire mode\n" - " SUPERADMIN Activate or deactivate super-admin mode\n" - " LIST List the options")); - } - else if (subcommand.equals_ci("LIST")) - source.Reply(_("Syntax: \002LIST\n" - "Display the various %s settings"), Config->OperServ.c_str()); - else if (subcommand.equals_ci("READONLY")) - source.Reply(_("Syntax: \002READONLY {ON | OFF}\002\n" - " \n" - "Sets read-only mode on or off. In read-only mode, normal\n" - "users will not be allowed to modify any Services data,\n" - "including channel and nickname access lists, etc. IRCops\n" - "with sufficient Services privileges will be able to modify\n" - "Services' AKILL list and drop or forbid nicknames and\n" - "channels, but any such changes will not be saved unless\n" - "read-only mode is deactivated before Services is terminated\n" - "or restarted.\n" - " \n" - "This option is equivalent to the command-line option\n" - "\002-readonly\002.")); - else if (subcommand.equals_ci("NOEXPIRE")) - source.Reply(_("Syntax: \002NOEXPIRE {ON | OFF}\002\n" - "Sets no expire mode on or off. In no expire mode, nicks,\n" - "channels, akills and exceptions won't expire until the\n" - "option is unset.\n" - "This option is equivalent to the command-line option\n" - "\002-noexpire\002.")); - else if (subcommand.equals_ci("SUPERADMIN")) - source.Reply(_("Syntax: \002SUPERADMIN {ON | OFF}\002\n" - "Setting this will grant you extra privileges such as the\n" - "ability to be \"founder\" on all channel's etc...\n" - "This option is \002not\002 persistent, and should only be used when\n" - "needed, and set back to OFF when no longer needed.")); - else - return false; - return true; - } -}; - -class OSSet : public Module -{ - CommandOSSet commandosset; - - public: - OSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE), - commandosset(this) - { - this->SetAuthor("Anope"); - - ModuleManager::RegisterService(&commandosset); - } -}; - -MODULE_INIT(OSSet) |