From 43e31bba5429849fdebeddc65f7e6f267211181f Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Fri, 7 Jun 2019 10:54:25 +0100 Subject: Check the unset level in autoop as well as the set level. --- src/modules/m_autoop.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp index 83c405338..b1b08228c 100644 --- a/src/modules/m_autoop.cpp +++ b/src/modules/m_autoop.cpp @@ -62,9 +62,10 @@ class AutoOpList : public ListModeBase std::string dummy; if (mh->AccessCheck(source, channel, dummy, true) == MOD_RES_DENY) return MOD_RES_DENY; - if (mh->GetLevelRequired(true) > mylevel) + if (mh->GetLevelRequired(adding) > mylevel) { - source->WriteNumeric(ERR_CHANOPRIVSNEEDED, channel->name, InspIRCd::Format("You must be able to set mode '%s' to include it in an autoop", mid.c_str())); + source->WriteNumeric(ERR_CHANOPRIVSNEEDED, channel->name, InspIRCd::Format("You must be able to %s mode %c (%s) to %s an autoop containing it", + adding ? "set" : "unset", mh->GetModeChar(), mh->name.c_str(), adding ? "add" : "remove")); return MOD_RES_DENY; } return MOD_RES_PASSTHRU; -- cgit v1.2.3