Exemplo n.º 1
0
 public function checkDomain($params)
 {
     foreach ($params as $param) {
         $data[$param['name']] = $param['value'];
     }
     if (empty($data['toCheck'])) {
         throw new Exception('Podaj login zgłaszającego!');
     }
     $logic = new Logic_Validate_LdapLogin();
     $config = Zend_Registry::get('config');
     $servers = $config['ldap'];
     foreach ($servers as $server) {
         $ldap = new Zend_Ldap($server);
         $ldap->bind($data['login'], $data['password']);
         $ldapEntry = $ldap->searchEntries(Zend_Ldap_Filter::equals('samaccountname', $data['toCheck']));
         if (!empty($ldapEntry)) {
             break;
         }
     }
     if (!empty($ldapEntry)) {
         $ret['pm_name'] = $ldapEntry[0]['displayname'][0];
         $ret['pm_email'] = $ldapEntry[0]['userprincipalname'][0];
         return $ret;
     } else {
         throw new Exception('Nie znaleziono użytkownika w domenie!');
     }
 }
Exemplo n.º 2
0
 public function isValid($value)
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $fields = $request->getParams();
     $config = Zend_Registry::get('config');
     $servers = $config['ldap'];
     $valid = false;
     foreach ($servers as $server) {
         try {
             $ldap = new Zend_Ldap($server);
             $ldap->bind($fields['ldapUser'], $fields['ldapPassword']);
             $ldapEntry = $ldap->searchEntries(Zend_Ldap_Filter::equals('samaccountname', $value));
             if (!empty($ldapEntry)) {
                 $valid |= true;
             }
         } catch (Exception $e) {
             $valid |= false;
         }
     }
     if (!$valid) {
         $this->_error(self::NOT_EXISTS);
         return false;
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  * Metoda pobierająca dane użytkownika o podanym loginie z domeny
  * @param string $login
  * @return array|boolean
  */
 public function getLdapData($login, $ldapPwd)
 {
     $login = strtolower($login);
     $config = Zend_Registry::get('config');
     $identity = Zend_Auth::getInstance()->getIdentity();
     $ldapServers = $config['ldap'];
     foreach ($ldapServers as $server) {
         try {
             $ldap = new Zend_Ldap($server);
             $ldap->bind($identity->login, $ldapPwd);
             $ldapEntry = $ldap->searchEntries(Zend_Ldap_Filter::equals('samaccountname', $login));
             if (!empty($ldapEntry)) {
                 return array_shift($ldapEntry);
             }
         } catch (Exception $e) {
             // pusty catch - obsługa braku dostępu do wybranej domeny
             // na podstawie danych zalogowanego użytkownika
         }
     }
     return false;
 }