Difference between #4 and #3 of How to use ldap in UserIdentity for authentication

unchanged
Title
How to use ldap in UserIdentity for authentication
unchanged
Category
Tutorials
unchanged
Tags
changed
Content
It took me a while to get ldap auth working with yii, so I write it down here,
maybe it can be of some use.

Yii does not have a ldap class by itself, but you can extend it for example with
Zend classes. To authenticate users at you page via ldap, change
protected/components/UserIdentity.php in the following way:

On top of the file add:
~~~
[php]
    Yii::import('application.vendors.*');
    require_once('Zend/Ldap.php');
~~~

Delete or comment out everything in the authenticate() function. Then add
~~~
[php]
    $options = array(
            'host'              => 'your.ldap.host.com',
            'username'          => 'your_admin_users_username',
            'password'          => 'your_admin_users_password',
            'baseDn'            => 'your_base_dn',
            'useStartTls'        => true, # if you need startTls
    );
    $ldap = new Zend_Ldap($options);
    try{
           
$ldap->bind("cn=".$this->username.",your_base_dn",
$this->password);
            $auth=true;
    }
    catch (Exception $e){
            $auth=false;
    }
    if($auth===true)
    {
            $this->errorCode=self::ERROR_NONE;
    }
    return !$this->errorCode;
~~~

For this to work you need Exception.php, Ldap.php and the Ldap folder from the
library folder of a Zend installation in the folder protected/vendors/Zend