openrat-cms

# OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs

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 ?>