]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/users.h
Remove the Kiwi links from the readme.
[user/henk/code/inspircd.git] / include / users.h
index bae2615c251748106e814e0c57be32641163c7e4..b9092b678fce7fc415b61bb0f57db523140ed121 100644 (file)
@@ -1,21 +1,22 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2019-2020 Matt Schatz <genius3000@g3k.solutions>
  *   Copyright (C) 2019 linuxdaemon <linuxdaemon.irc@gmail.com>
- *   Copyright (C) 2019 Matt Schatz <genius3000@g3k.solutions>
  *   Copyright (C) 2013 Daniel Vassdal <shutter@canternet.org>
  *   Copyright (C) 2012-2016, 2018 Attila Molnar <attilamolnar@hush.com>
- *   Copyright (C) 2012-2013, 2016-2019 Sadie Powell <sadie@witchery.services>
- *   Copyright (C) 2012, 2018-2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2012-2013, 2016-2020 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2012, 2019 Robby <robby@chatbelgie.be>
  *   Copyright (C) 2012 DjSlash <djslash@djslash.org>
  *   Copyright (C) 2012 ChrisTX <xpipe@hotmail.de>
+ *   Copyright (C) 2011 jackmcbarn <jackmcbarn@inspircd.org>
  *   Copyright (C) 2009-2010 Daniel De Graaf <danieldg@inspircd.org>
  *   Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
  *   Copyright (C) 2008 Thomas Stagner <aquanight@inspircd.org>
  *   Copyright (C) 2008 John Brooks <special@inspircd.org>
- *   Copyright (C) 2007-2009 Robin Burchell <robin+git@viroteck.net>
  *   Copyright (C) 2007, 2009 Dennis Friis <peavey@inspircd.org>
- *   Copyright (C) 2006-2008 Craig Edwards <brain@inspircd.org>
+ *   Copyright (C) 2006-2009 Robin Burchell <robin+git@viroteck.net>
+ *   Copyright (C) 2003-2008 Craig Edwards <brain@inspircd.org>
  *
  * 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
@@ -70,7 +71,7 @@ enum UserType {
        USERTYPE_SERVER = 3
 };
 
-/** Holds information relevent to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
+/** Holds information relevant to &lt;connect allow&gt; and &lt;connect deny&gt; tags in the config file.
  */
 struct CoreExport ConnectClass : public refcountbase
 {
@@ -361,13 +362,13 @@ class CoreExport User : public Extensible
 
        /** If this is set to true, then all socket operations for the user
         * are dropped into the bit-bucket.
-        * This value is set by QuitUser, and is not needed seperately from that call.
+        * This value is set by QuitUser, and is not needed separately from that call.
         * Please note that setting this value alone will NOT cause the user to quit.
         */
        unsigned int quitting:1;
 
        /** What type of user is this? */
-       const UserType usertype:2;
+       const unsigned int usertype:2;
 
        /** Get client IP string from sockaddr, using static internal buffer
         * @return The IP string
@@ -490,6 +491,12 @@ class CoreExport User : public Extensible
         */
        virtual bool HasModePermission(const ModeHandler* mh) const;
 
+       /** Determines whether this user can set the specified snomask.
+        * @param chr The server notice mask character to look up.
+        * @return True if the user can set the specified snomask; otherwise, false.
+        */
+       virtual bool HasSnomaskPermission(char chr) const;
+
        /** Creates a usermask with real host.
         * Takes a buffer to use and fills the given buffer with the hostmask in the format user\@host
         * @return the usermask in the format user\@host
@@ -879,6 +886,9 @@ class CoreExport LocalUser : public User, public insp::intrusive_list_node<Local
         */
        bool HasModePermission(const ModeHandler* mh) const CXX11_OVERRIDE;
 
+       /** @copydoc User::HasSnomaskPermission */
+       bool HasSnomaskPermission(char chr) const CXX11_OVERRIDE;
+
        /** Change nick to uuid, unset REG_NICK and send a nickname overruled numeric.
         * This is called when another user (either local or remote) needs the nick of this user and this user
         * isn't registered.