<?php
class LDAP
{
public static function checkPassword($username, $password)
{
$options = array(
'host' => 's0.foo.net',
'username' => 'CN=user1,DC=foo,DC=net',
'password' => 'pass1',
'bindRequiresDn' => true,
'accountDomainName' => 'foo.net',
'baseDn' => 'OU=Sales,DC=foo,DC=net'
);
$ldap = new Zend_Ldap($options);
try
{
$ldap->bind($username, $password);
$ldap->getCanonicalAccountName($username);
if (!Doctrine::getTable('sfGuardUser')->findOneByUsername($username))
{
$user = new sfGuardUser();
$user->setUsername($username);
$user->setPassword($password);
$user->setIsActive(true);
$user->save();
}
return true;
}
catch (Zend_Ldap_Exception $zle)
{
if ($user = Doctrine::getTable('sfGuardUser')->findOneByUsername($username))
{
if ($user->checkPasswordByGuard($password))
{
return true;
}
}
return false;
}
}
}