]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
m_check: split modeperms into chanmodeperms and usermodeperms.
[user/henk/code/inspircd.git] / src / mode.cpp
index 5793b4e665083d284f44f3cbe76ede8748f001b7..50dd05d2dbbde849c30ec6f6d52589cdb0fe3d2c 100644 (file)
@@ -312,17 +312,6 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, Mode
                }
        }
 
-       if (IS_LOCAL(user) && !user->IsOper())
-       {
-               const std::bitset<64>& disabled = (type == MODETYPE_CHANNEL) ? ServerInstance->Config->DisabledCModes : ServerInstance->Config->DisabledUModes;
-               if (disabled.test(modechar - 'A'))
-               {
-                       user->WriteNumeric(ERR_NOPRIVILEGES, InspIRCd::Format("Permission Denied - %s mode %c has been locked by the administrator",
-                               type == MODETYPE_CHANNEL ? "channel" : "user", modechar));
-                       return MODEACTION_DENY;
-               }
-       }
-
        if ((adding) && (IS_LOCAL(user)) && (mh->NeedsOper()) && (!user->HasModePermission(mh)))
        {
                /* It's an oper only mode, and they don't have access to it. */
@@ -618,7 +607,7 @@ void ModeParser::AddMode(ModeHandler* mh)
        if ((mh->GetModeType() == MODETYPE_USER) || (mh->IsParameterMode()) || (!mh->IsListMode()))
                modeid = AllocateModeId(mh->GetModeType());
 
-       std::pair<ModeHandlerMap::iterator, bool> res = modehandlersbyname[mh->GetModeType()].insert(std::make_pair(mh->name, mh)); 
+       std::pair<ModeHandlerMap::iterator, bool> res = modehandlersbyname[mh->GetModeType()].insert(std::make_pair(mh->name, mh));
        if (!res.second)
        {
                ModeHandler* othermh = res.first->second;