]> jfr.im git - irc/freenode/solanum.git/commitdiff
wallops: require new oper:wallops right (#110)
authorTaavi Väänänen <redacted>
Thu, 28 Jan 2021 14:09:31 +0000 (16:09 +0200)
committerGitHub <redacted>
Thu, 28 Jan 2021 14:09:31 +0000 (14:09 +0000)
Split oper:wallops right from oper:mass_notice. Update documentation and
examples to grant oper:wallops everywhere oper:mass_notice was granted.

closes #103

NEWS.md
doc/ircd.conf.example
doc/reference.conf
help/opers/wallops
modules/m_wallops.c

diff --git a/NEWS.md b/NEWS.md
index c316bcf39db8b047ae7db3bc7a10b6b333e3a055..2b117cb33c9f4d1bb7aa5409bd78783b1e392725 100644 (file)
--- a/NEWS.md
+++ b/NEWS.md
@@ -40,6 +40,7 @@ bolded warnings in the full release notes below.
 - **Breaking:** /stats A output now follows the same format as other stats letters
 - **Breaking:** helpops now uses +h instead of +H
 - **Breaking:** sno\_whois and the spy\_ extensions have been removed
+- **Breaking:** Using /wallops now requires the oper:wallops privilege instead of oper:massnotice
 - Opers now have their privset (identified by name) on remote servers
 - Oper-only umodes are refreshed after rehash and /grant
 - Extension modules can be reloaded
index ab1f940ceacbfeed396766e28d8ee8ebdf90d5d4..631ce6a114d3cd7e97c38e8d83c0d8e64e41bcdf 100644 (file)
@@ -244,7 +244,8 @@ privset "server_bot" {
 privset "global_op" {
        extends = "local_op";
        privs = oper:routing, oper:kline, oper:unkline, oper:xline,
-               oper:resv, oper:cmodes, oper:mass_notice, oper:remoteban;
+               oper:resv, oper:cmodes, oper:mass_notice, oper:wallops,
+               oper:remoteban;
 };
 
 privset "admin" {
index 758477878809f0af13fec54ea2d96932ed179325..5ce9c89237e4a8f19af02f6dbfc581f3b3fb9873 100644 (file)
@@ -456,7 +456,8 @@ privset "local_op" {
         *                       channels etc. see /quote help operspy
         * oper:hidden:          hides the oper from /stats p
         * oper:remoteban:       allows remote kline etc
-        * oper:mass_notice:     allows sending wallops and mass notices
+        * oper:mass_notice:     allows sending mass notices
+        * oper:wallops:         allows sending wallops messages
         * oper:grant:           allows using the GRANT command
         * usermode:servnotice:  allows setting +s
         *
@@ -481,7 +482,8 @@ privset "server_bot" {
 privset "global_op" {
        extends = "local_op";
        privs = oper:routing, oper:kline, oper:unkline, oper:xline,
-               oper:resv, oper:cmodes, oper:mass_notice, oper:remoteban;
+               oper:resv, oper:cmodes, oper:mass_notice, oper:wallops,
+               oper:remoteban;
 };
 
 privset "admin" {
index 94a0213ac731760bc3a64ecbd8577ec9888e2065..2e20998bc41f4414e49673d7c3cf987d66df1a27 100644 (file)
@@ -5,4 +5,4 @@ who are umode +w (including non-opers).
 
 Server sent WALLOPS go to all opers who are umode +w.
 
-- Requires Oper Priv: oper:mass_notice
+- Requires Oper Priv: oper:wallops
index 0a951b0d6121320ea0b90e98ac422f3166c6ae1e..f64bc96e9ee3ef4642b5044fdcc58bc85baba3f1 100644 (file)
@@ -97,10 +97,10 @@ ms_wallops(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *sour
 {
        const char *prefix = "";
 
-       if (MyClient(source_p) && !IsOperMassNotice(source_p))
+       if (MyClient(source_p) && !HasPrivilege(source_p, "oper:wallops"))
        {
                sendto_one(source_p, form_str(ERR_NOPRIVS),
-                          me.name, source_p->name, "mass_notice");
+                          me.name, source_p->name, "wallops");
                return;
        }