summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/coremods/core_user/umode_s.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/coremods/core_user/umode_s.cpp b/src/coremods/core_user/umode_s.cpp
index 5994f97fb..7080b277f 100644
--- a/src/coremods/core_user/umode_s.cpp
+++ b/src/coremods/core_user/umode_s.cpp
@@ -104,6 +104,13 @@ std::string ModeUserServerNoticeMask::ProcessNoticeMasks(User* user, const std::
user->WriteNumeric(ERR_UNKNOWNSNOMASK, *i, "is an unknown snomask character");
continue;
}
+ else if (!user->IsOper())
+ {
+ user->WriteNumeric(ERR_NOPRIVILEGES, InspIRCd::Format("Permission Denied - Only operators may %sset snomask %c",
+ adding ? "" : "un", *i));
+ continue;
+
+ }
else if (!user->HasSnomaskPermission(*i))
{
user->WriteNumeric(ERR_NOPRIVILEGES, InspIRCd::Format("Permission Denied - Oper type %s does not have access to snomask %c",