- return MODEACTION_DENY;
- }
-
- if ((!adding) && FounderProtectBase::CanRemoveOthers(source, channel))
- {
- return MODEACTION_ALLOW;
- }
-
- char isoverride=0;
- Module *Override = ServerInstance->Modules->FindFeature("Override");
- if (Override)
- {
- OVRrequest ovr(NULL,Override,source,"OTHERMODE");
- const char * tmp = ovr.Send();
- isoverride = tmp[0];
- }
- // source is a server, or ulined, we'll let them +-q the user.
- if (!IS_LOCAL(source) ||
- ((source == theuser) && (!adding) && (FounderProtectBase::remove_own_privs)) ||
- (ServerInstance->ULine(source->nick.c_str())) ||
- (ServerInstance->ULine(source->server)) ||
- (!*source->server) ||
- isoverride)
- {
- return MODEACTION_ALLOW;