LdapUserDNAuth.class.php (1314B)
1 <?php 2 3 namespace cms\auth; 4 5 use cms\auth\Auth; 6 use logger\Logger; 7 use util\Ldap; 8 9 /** 10 * Authentifizierung gegen einen LDAP-Server. 11 * 12 * @author Jan Dankert 13 */ 14 class LdapUserDNAuth implements Auth 15 { 16 /** 17 * @see Auth::login() 18 */ 19 public function login($username, $password, $token) 20 { 21 $db = \cms\base\DB::get(); 22 $this->mustChangePassword = false; 23 24 // Lesen des Benutzers aus der DB-Tabelle 25 $sql = $db->sql(<<<SQL 26 SELECT * FROM {{user}} 27 WHERE name={name} 28 SQL 29 ); 30 $sql->setString('name', $username); 31 32 $row_user = $sql->getRow(); 33 34 if (empty($row_user)) 35 return false; 36 37 // Benutzername ist bereits in der Datenbank. 38 $userid = $row_user['id']; 39 $ldap_dn = $row_user['ldap_dn']; 40 41 if (empty($ldap_dn)) 42 return false; 43 44 // Falls Modul LDAP nicht vorhanden ist können wir gleich beenden. 45 if (!extension_loaded('ldap')) { 46 47 Logger::warn("LDAP Login is not possible: LDAP-Extension ist not loaded."); 48 return false; 49 } 50 51 52 Logger::debug('checking login via ldap'); 53 $ldap = new Ldap(); 54 $ldap->connect(); 55 56 // Benutzer ist bereits in Datenbank 57 // LDAP-Login mit dem bereits vorhandenen DN versuchen 58 $ok = $ldap->bind($ldap_dn, $password); 59 60 // Verbindung zum LDAP-Server brav beenden 61 $ldap->close(); 62 63 return $ok; 64 } 65 66 public function username() 67 { 68 return null; 69 } 70 71 } 72 73 ?>