]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_callerid.cpp
Use an oper priv instead of a config flag for overriding nonicks.
[user/henk/code/inspircd.git] / src / modules / m_callerid.cpp
index 137ab6b93b9c69deb2c1793ae8aafcd69a6d7cd6..f43dd448daa02976e8f3f488fcef8d8ef6528fb2 100644 (file)
@@ -330,7 +330,6 @@ class ModuleCallerID : public Module
        SimpleUserModeHandler myumode;
 
        // Configuration variables:
-       bool operoverride; // Operators can override callerid.
        bool tracknick; // Allow ACCEPT entries to update with nick changes.
        unsigned int notify_cooldown; // Seconds between notifications.
 
@@ -371,19 +370,20 @@ public:
 
        void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE
        {
-               tokens["CALLERID"] = "g";
+               tokens["ACCEPT"] = ConvToStr(cmd.maxaccepts);
+               tokens["CALLERID"] = ConvToStr(myumode.GetModeChar());
        }
 
-       ModResult OnUserPreMessage(User* user, void* voiddest, int target_type, std::string& text, char status, CUList& exempt_list, MessageType msgtype) CXX11_OVERRIDE
+       ModResult OnUserPreMessage(User* user, const MessageTarget& target, MessageDetails& details) CXX11_OVERRIDE
        {
-               if (!IS_LOCAL(user) || target_type != TYPE_USER)
+               if (!IS_LOCAL(user) || target.type != MessageTarget::TYPE_USER)
                        return MOD_RES_PASSTHRU;
 
-               User* dest = static_cast<User*>(voiddest);
+               User* dest = target.Get<User>();
                if (!dest->IsModeSet(myumode) || (user == dest))
                        return MOD_RES_PASSTHRU;
 
-               if (operoverride && user->IsOper())
+               if (user->HasPrivPermission("users/callerid-override"))
                        return MOD_RES_PASSTHRU;
 
                callerid_data* dat = cmd.extInfo.get(dest, true);
@@ -419,7 +419,6 @@ public:
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("callerid");
                cmd.maxaccepts = tag->getInt("maxaccepts", 16);
-               operoverride = tag->getBool("operoverride");
                tracknick = tag->getBool("tracknick");
                notify_cooldown = tag->getDuration("cooldown", 60);
        }