]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ircv3_capnotify.cpp
Sync helpop chmodes s and p with docs
[user/henk/code/inspircd.git] / src / modules / m_ircv3_capnotify.cpp
index 6190f15a8f19951888bded3276aa8e1a705f7441..816412dab6fa575f43905688a5cac33266ab128c 100644 (file)
@@ -1,7 +1,8 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
- *   Copyright (C) 2015 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2015, 2018 Attila Molnar <attilamolnar@hush.com>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
  * redistribute it and/or modify it under the terms of the GNU General Public
@@ -101,6 +102,10 @@ class ModuleIRCv3CapNotify : public Module, public Cap::EventListener, public Re
                        if (!capnotify.get(user))
                                continue;
 
+                       // Check that this user can actually see the cap.
+                       if (add && (!cap || !cap->OnList(user)))
+                               continue;
+
                        // If the cap is being added and the client supports cap values then show the value, if any
                        if ((add) && (capnotify.GetProtocol(user) != Cap::CAP_LEGACY))
                        {
@@ -159,7 +164,7 @@ class ModuleIRCv3CapNotify : public Module, public Cap::EventListener, public Re
 
        void OnReloadModuleRestore(Module* mod, void* data) CXX11_OVERRIDE
        {
-               // Reloading can change the set of caps provided by a module so assuming that if the reload succeded all
+               // Reloading can change the set of caps provided by a module so assuming that if the reload succeeded all
                // caps that the module previously provided are available or all were lost if the reload failed is wrong.
                // Instead, we verify the availability of each cap individually.
                dynamic_reference_nocheck<Cap::Manager> capmanager(this, "capmanager");
@@ -178,7 +183,7 @@ class ModuleIRCv3CapNotify : public Module, public Cap::EventListener, public Re
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Provides the cap-notify IRCv3 extension", VF_VENDOR);
+               return Version("Provides the IRCv3 cap-notify client capability.", VF_VENDOR);
        }
 };