From 8cebf7069a5eba14a33ced91f1e7ec75e01162d3 Mon Sep 17 00:00:00 2001 From: danieldg Date: Sun, 7 Mar 2010 18:27:14 +0000 Subject: Make "topiclock" exemption only apply when +t is set git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12613 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/channels.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/channels.cpp b/src/channels.cpp index 5603ef1dd..cdc988139 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -92,13 +92,14 @@ int Channel::SetTopic(User *u, std::string &ntopic, bool forceset) return CMD_FAILURE; if (res != MOD_RES_ALLOW) { - bool defok = IsModeSet('t') ? GetPrefixValue(u) >= HALFOP_VALUE : HasUser(u); - if (!ServerInstance->OnCheckExemption(u,this,"topiclock").check(defok)) + if (!this->HasUser(u)) { - if (!this->HasUser(u)) - u->WriteNumeric(442, "%s %s :You're not on that channel!",u->nick.c_str(), this->name.c_str()); - else - u->WriteNumeric(482, "%s %s :You do not have access to change the topic on this channel", u->nick.c_str(), this->name.c_str()); + u->WriteNumeric(442, "%s %s :You're not on that channel!",u->nick.c_str(), this->name.c_str()); + return CMD_FAILURE; + } + if (IsModeSet('t') && !ServerInstance->OnCheckExemption(u,this,"topiclock").check(GetPrefixValue(u) >= HALFOP_VALUE)) + { + u->WriteNumeric(482, "%s %s :You do not have access to change the topic on this channel", u->nick.c_str(), this->name.c_str()); return CMD_FAILURE; } } -- cgit v1.2.3