-
-std::string ModeChannelOp::AddOp(userrec *user,const char* dest,chanrec *chan,int status)
-{
- userrec *d = ServerInstance->Modes->SanityChecks(user,dest,chan,status);
-
- if (d)
- {
- if (IS_LOCAL(user))
- {
- int MOD_RESULT = 0;
- FOREACH_RESULT(I_OnAccessCheck,OnAccessCheck(user,d,chan,AC_OP));
-
- if (MOD_RESULT == ACR_DENY)
- return "";
- if (MOD_RESULT == ACR_DEFAULT)
- {
- if ((status < STATUS_OP) && (!ServerInstance->ULine(user->server)))
- {
- user->WriteServ("482 %s %s :You're not a channel operator",user->nick, chan->name);
- return "";
- }
- }
- }
-
- return ServerInstance->Modes->Grant(d,chan,UCMODE_OP);
- }
- return "";
-}
-
-std::string ModeChannelOp::DelOp(userrec *user,const char *dest,chanrec *chan,int status)
-{
- userrec *d = ServerInstance->Modes->SanityChecks(user,dest,chan,status);
-
- if (d)
- {
- if (IS_LOCAL(user))
- {
- int MOD_RESULT = 0;
- ServerInstance->Log(DEBUG,"Call OnAccessCheck for AC_DEOP");
- FOREACH_RESULT(I_OnAccessCheck,OnAccessCheck(user,d,chan,AC_DEOP));
-
- ServerInstance->Log(DEBUG,"Returns %d",MOD_RESULT);
-
- if (MOD_RESULT == ACR_DENY)
- return "";
- if (MOD_RESULT == ACR_DEFAULT)
- {
- if ((status < STATUS_OP) && (!ServerInstance->ULine(user->server)) && (IS_LOCAL(user)))
- {
- user->WriteServ("482 %s %s :You are not a channel operator",user->nick, chan->name);
- return "";
- }
- }
- }
-
- return ServerInstance->Modes->Revoke(d,chan,UCMODE_OP);
- }
- return "";
-}