X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services_account.cpp;h=72cd925abea7037d39662cfde8d987fa49600b94;hb=9acece70e533fc45d5401e331af25a5e99dab660;hp=2fb7b08523c7f898f1727ffce13d612135011824;hpb=8459e625349c03039e7545c213f84d8756034390;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 2fb7b0852..72cd925ab 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -54,7 +54,7 @@ class Channel_r : public ModeHandler ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string& parameter, bool adding) CXX11_OVERRIDE { - // only a u-lined server may add or remove the +r mode. + // Only a U-lined server may add or remove the +r mode. if (!IS_LOCAL(source)) { // Only change the mode if it's not redundant @@ -199,7 +199,7 @@ class ModuleServicesAccount m5.RemoveMode(user); } - ModResult HandleMessage(User* user, const MessageTarget& target) CXX11_OVERRIDE + ModResult HandleMessage(User* user, const MessageTarget& target) { if (!IS_LOCAL(user)) return MOD_RES_PASSTHRU; @@ -207,32 +207,39 @@ class ModuleServicesAccount std::string *account = accountname.get(user); bool is_registered = account && !account->empty(); - if (target.type == MessageTarget::TYPE_CHANNEL) + switch (target.type) { - Channel* targchan = target.Get(); + case MessageTarget::TYPE_CHANNEL: + { + Channel* targchan = target.Get(); - if (!targchan->IsModeSet(m2) || is_registered) - return MOD_RES_PASSTHRU; + if (!targchan->IsModeSet(m2) || is_registered) + return MOD_RES_PASSTHRU; - if (CheckExemption::Call(exemptionprov, user, targchan, "regmoderated") == MOD_RES_ALLOW) - return MOD_RES_PASSTHRU; + if (CheckExemption::Call(exemptionprov, user, targchan, "regmoderated") == MOD_RES_ALLOW) + return MOD_RES_PASSTHRU; - // User is messaging a +M channel and is not registered or exempt. - user->WriteNumeric(ERR_NEEDREGGEDNICK, targchan->name, "You need to be identified to a registered account to message this channel"); - return MOD_RES_DENY; - } - else if (target.type == MessageTarget::TYPE_USER) - { - User* targuser = target.Get(); - if (!targuser->IsModeSet(m3) || is_registered) - return MOD_RES_PASSTHRU; + // User is messaging a +M channel and is not registered or exempt. + user->WriteNumeric(ERR_NEEDREGGEDNICK, targchan->name, "You need to be identified to a registered account to message this channel"); + return MOD_RES_DENY; + break; + } + case MessageTarget::TYPE_USER: + { + User* targuser = target.Get(); + if (!targuser->IsModeSet(m3) || is_registered) + return MOD_RES_PASSTHRU; - if (calleridapi && calleridapi->IsOnAcceptList(user, targuser)) - return MOD_RES_PASSTHRU; + if (calleridapi && calleridapi->IsOnAcceptList(user, targuser)) + return MOD_RES_PASSTHRU; - // User is messaging a +R user and is not registered or on an accept list. - user->WriteNumeric(ERR_NEEDREGGEDNICK, targuser->nick, "You need to be identified to a registered account to message this user"); - return MOD_RES_DENY; + // User is messaging a +R user and is not registered or on an accept list. + user->WriteNumeric(ERR_NEEDREGGEDNICK, targuser->nick, "You need to be identified to a registered account to message this user"); + return MOD_RES_DENY; + break; + } + case MessageTarget::TYPE_SERVER: + break; } return MOD_RES_PASSTHRU; } @@ -312,7 +319,7 @@ class ModuleServicesAccount Version GetVersion() CXX11_OVERRIDE { - return Version("Provides support for ircu-style services accounts, including chmode +R, etc.",VF_OPTCOMMON|VF_VENDOR); + return Version("Provides support for ircu-style services accounts, including channel mode +R, etc", VF_OPTCOMMON|VF_VENDOR); } };