Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "module.h"
00015
00016 class CommandCSSetSecure : public Command
00017 {
00018 public:
00019 CommandCSSetSecure(Module *creator, const Anope::string &cname = "chanserv/set/secure") : Command(creator, cname, 2, 2)
00020 {
00021 this->SetDesc(_("Activate security features"));
00022 this->SetSyntax(_("\037channel\037 {ON | OFF}"));
00023 }
00024
00025 void Execute(CommandSource &source, const std::vector<Anope::string> ¶ms) anope_override
00026 {
00027 ChannelInfo *ci = ChannelInfo::Find(params[0]);
00028 if (ci == NULL)
00029 {
00030 source.Reply(CHAN_X_NOT_REGISTERED, params[0].c_str());
00031 return;
00032 }
00033
00034 EventReturn MOD_RESULT;
00035 FOREACH_RESULT(I_OnSetChannelOption, OnSetChannelOption(source, this, ci, params[1]));
00036 if (MOD_RESULT == EVENT_STOP)
00037 return;
00038
00039 if (MOD_RESULT != EVENT_ALLOW && source.permission.empty() && !source.AccessFor(ci).HasPriv("SET"))
00040 {
00041 source.Reply(ACCESS_DENIED);
00042 return;
00043 }
00044
00045 if (params[1].equals_ci("ON"))
00046 {
00047 ci->SetFlag(CI_SECURE);
00048 source.Reply(_("Secure option for %s is now \002on\002."), ci->name.c_str());
00049 }
00050 else if (params[1].equals_ci("OFF"))
00051 {
00052 ci->UnsetFlag(CI_SECURE);
00053 source.Reply(_("Secure option for %s is now \002off\002."), ci->name.c_str());
00054 }
00055 else
00056 this->OnSyntaxError(source, "SECURE");
00057
00058 return;
00059 }
00060
00061 bool OnHelp(CommandSource &source, const Anope::string &) anope_override
00062 {
00063 this->SendSyntax(source);
00064 source.Reply(" ");
00065 source.Reply(_("Enables or disables security features for a\n"
00066 "channel. When \002%s\002 is set, only users who have\n"
00067 "registered their nicknames and IDENTIFY'd\n"
00068 "with their password will be given access to the channel\n"
00069 "as controlled by the access list."), this->name.c_str());
00070 return true;
00071 }
00072 };
00073
00074 class CSSetSecure : public Module
00075 {
00076 CommandCSSetSecure commandcssetsecure;
00077
00078 public:
00079 CSSetSecure(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, CORE),
00080 commandcssetsecure(this)
00081 {
00082 this->SetAuthor("Anope");
00083
00084 }
00085 };
00086
00087 MODULE_INIT(CSSetSecure)