diff options
author | Sadie Powell <sadie@witchery.services> | 2020-03-29 12:06:06 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2020-03-29 12:08:19 +0100 |
commit | 3f3da905b9bce3b180208ed3e6547f8579779b28 (patch) | |
tree | c0689339ca65c1114f8433d6ce4eda2e28444de5 /src | |
parent | 92732be632831cbb0751a5f2ad3d89e9bf87b2dd (diff) |
Add support for the servers/ignore-shun privilege.
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_shun.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 6eaa6b47c..e75f18770 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -212,19 +212,13 @@ class ModuleShun : public Module, public Stats::EventListener if (validated) return MOD_RES_PASSTHRU; - if (!ServerInstance->XLines->MatchesLine("SHUN", user)) - { - /* Not shunned, don't touch. */ - return MOD_RES_PASSTHRU; - } - - if (!affectopers && user->IsOper()) - { - /* Don't do anything if the user is an operator and affectopers isn't set */ - return MOD_RES_PASSTHRU; - } + // Exempt the user from shuns if: + // (1) They are an oper and affectopers is disabled. + // (2) They have the servers/ignore-shun privilege. + if ((!affectopers && user->IsOper()) || user->HasPrivPermission("servers/ignore-shun")) + return MOD_RES_PASSTHRU; - if (!ShunEnabledCommands.count(command)) + if (ServerInstance->XLines->MatchesLine("SHUN", user) && !ShunEnabledCommands.count(command)) { if (NotifyOfShun) user->WriteNotice("*** Command " + command + " not processed, as you have been blocked from issuing commands (SHUN)"); |