Don't check permission to +Q for remote users, probably fixes bug #619 reported by yell0w.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10821 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
w00t 2008-11-24 08:58:13 +00:00
parent f5f20e3773
commit 06396fb2b5

View File

@ -59,20 +59,23 @@ class InvisibleMode : public ModeHandler
{
bool ok = false;
for (int j = 0; j < conf->Enumerate("type"); j++)
if (IS_LOCAL(source))
{
std::string opertype = conf->ReadValue("type","name",j);
if (opertype == source->oper)
for (int j = 0; j < conf->Enumerate("type"); j++)
{
ok = conf->ReadFlag("type", "canquiet", j);
break;
std::string opertype = conf->ReadValue("type","name",j);
if (opertype == source->oper)
{
ok = conf->ReadFlag("type", "canquiet", j);
break;
}
}
}
if (!ok)
{
source->WriteNumeric(481, "%s :Permission Denied - You do not have access to become invisible via user mode +Q", source->nick.c_str());
return MODEACTION_DENY;
if (!ok)
{
source->WriteNumeric(481, "%s :Permission Denied - You do not have access to become invisible via user mode +Q", source->nick.c_str());
return MODEACTION_DENY;
}
}
dest->SetMode('Q', adding);