]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_ldapauth.cpp
Update copyright headers.
[user/henk/code/inspircd.git] / src / modules / m_ldapauth.cpp
index fedf02b4dd107f1c7e1c5f694126fc408ee3b12d..f608129499f86acb45f4cfc2f0e0eb04a52b5457 100644 (file)
@@ -1,14 +1,12 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
- *   Copyright (C) 2013 Adam <Adam@anope.org>
- *   Copyright (C) 2011 Pierre Carrier <pierre@spotify.com>
- *   Copyright (C) 2009-2010 Robin Burchell <robin+git@viroteck.net>
- *   Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- *   Copyright (C) 2008 Pippijn van Steenhoven <pip88nl@gmail.com>
- *   Copyright (C) 2008 Craig Edwards <craigedwards@brainbox.cc>
- *   Copyright (C) 2008 Dennis Friis <peavey@inspircd.org>
- *   Copyright (C) 2007 Carsten Valdemar Munk <carsten.munk+inspircd@gmail.com>
+ *   Copyright (C) 2020 Joel Sing <joel@sing.id.au>
+ *   Copyright (C) 2019, 2021 Sadie Powell <sadie@witchery.services>
+ *   Copyright (C) 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2014-2015 Attila Molnar <attilamolnar@hush.com>
+ *   Copyright (C) 2014 Thiago Crepaldi <thiago@thiagocrepaldi.com>
+ *   Copyright (C) 2013-2014, 2017 Adam <Adam@anope.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
@@ -121,6 +119,9 @@ class BindInterface : public LDAPInterface
 
                if (!checkingAttributes && requiredattributes.empty())
                {
+                       if (verbose)
+                               ServerInstance->SNO->WriteToSnoMask('c', "Successful connection from %s (dn=%s)", user->GetFullRealHost().c_str(), DN.c_str());
+
                        // We're done, there are no attributes to check
                        SetVHost(user, DN);
                        authed->set(user, 1);
@@ -137,6 +138,9 @@ class BindInterface : public LDAPInterface
                                // Only one has to pass
                                passed = true;
 
+                               if (verbose)
+                                       ServerInstance->SNO->WriteToSnoMask('c', "Successful connection from %s (dn=%s)", user->GetFullRealHost().c_str(), DN.c_str());
+
                                SetVHost(user, DN);
                                authed->set(user, 1);
                        }
@@ -174,7 +178,7 @@ class BindInterface : public LDAPInterface
                if (!attrCount)
                {
                        if (verbose)
-                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (unable to validate attributes)", user->GetFullRealHost().c_str());
+                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (dn=%s) (unable to validate attributes)", user->GetFullRealHost().c_str(), DN.c_str());
                        ServerInstance->Users->QuitUser(user, killreason);
                        delete this;
                }
@@ -216,7 +220,7 @@ class SearchInterface : public LDAPInterface
 
        void OnResult(const LDAPResult& r) CXX11_OVERRIDE
        {
-               LocalUser* user = static_cast<LocalUser*>(ServerInstance->FindUUID(uid));
+               LocalUser* user = IS_LOCAL(ServerInstance->FindUUID(uid));
                dynamic_reference<LDAPProvider> LDAP(me, provider);
                if (!LDAP || r.empty() || !user)
                {
@@ -321,13 +325,13 @@ public:
                whitelistedcidrs.clear();
                requiredattributes.clear();
 
-               base                    = tag->getString("baserdn");
+               base                    = tag->getString("baserdn");
                attribute               = tag->getString("attribute");
                killreason              = tag->getString("killreason");
                vhost                   = tag->getString("host");
                // Set to true if failed connects should be reported to operators
                verbose                 = tag->getBool("verbose");
-               useusername             = tag->getBool("userfield");
+               useusername             = tag->getBool("useusername", tag->getBool("userfield"));
 
                LDAP.SetProvider("LDAP/" + tag->getString("dbid"));
 
@@ -393,7 +397,7 @@ public:
                if (user->password.empty())
                {
                        if (verbose)
-                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (No password provided)", user->GetFullRealHost().c_str());
+                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (no password provided)", user->GetFullRealHost().c_str());
                        ServerInstance->Users->QuitUser(user, killreason);
                        return MOD_RES_DENY;
                }
@@ -401,7 +405,7 @@ public:
                if (!LDAP)
                {
                        if (verbose)
-                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (Unable to find LDAP provider)", user->GetFullRealHost().c_str());
+                               ServerInstance->SNO->WriteToSnoMask('c', "Forbidden connection from %s (unable to find LDAP provider)", user->GetFullRealHost().c_str());
                        ServerInstance->Users->QuitUser(user, killreason);
                        return MOD_RES_DENY;
                }
@@ -440,7 +444,7 @@ public:
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Allow/Deny connections based upon answer from LDAP server", VF_VENDOR);
+               return Version("Allows connecting users to be authenticated against an LDAP database.", VF_VENDOR);
        }
 };