openrat-cms

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

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