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