public function import()
 {
     $newList = [];
     $ldap = new LdapComponent();
     $members = $ldap->groupSearch('cubric-int');
     $email = '';
     User::updateAll(['status_id' => Types::$status['inactive']['id']], 'status_id=' . Types::$status['active']['id']);
     foreach ($members as $dn) {
         $user_name = $this->_parseUserDn($dn);
         $userModel = User::findOne(['user_name' => $user_name]);
         $rec = $ldap->search(sprintf('uid=%s', $user_name));
         $rec = $rec['data'][0];
         if ($userModel === null) {
             if (array_key_exists('email', $rec)) {
                 $email = $rec['mail'][0];
             } else {
                 $email = sprintf('*****@*****.**', $user_name);
             }
             $userModel = new User();
             $userModel->user_name = $user_name;
             $userModel->email = $email;
             $newList[] = ['user_name' => $user_name, 'first_name' => $rec['givenname'][0], 'last_name' => $rec['sn'][0], 'email' => $email];
         }
         //if (array_key_exists('telephonenumber', $rec))
         //    echo ($rec['telephonenumber'][0]) . "<br/>";
         $userModel->first_name = $rec['givenname'][0];
         $userModel->last_name = $rec['sn'][0];
         $userModel->gid = $rec['gidnumber'][0];
         $userModel->uid = $rec['uidnumber'][0];
         $userModel->dn = $dn;
         $userModel->status_id = Types::$status['active']['id'];
         $userModel->save();
     }
     foreach ($newList as $u) {
         yii::$app->LogComponent->activateUser($u['user_name'], sprintf('Adding user: %s %s', $u['first_name'], $u['last_name']));
         if (array_key_exists('email', $u)) {
             yii::$app->LogComponent->emailSend($u['user_name'], sprintf('Welcome email sent to %s', $u['email']));
             $this->sendWelcomeEmail($u['user_name'], $u['email']);
         }
     }
     return $newList;
 }
 public function actionLdapsearchuser()
 {
     yii::$app->AjaxResponse->error = false;
     $return = ['count' => 0, 'data' => []];
     $request = yii::$app->request;
     $search = $request->post('user_name');
     $ldap = new LdapComponent();
     $record = $ldap->search(sprintf('uid=%s', $search));
     if ($record['count'] > 0) {
         $return['count'] = $record['count'];
         $return['data']['first_name'] = $record['data'][0]['givenname'][0];
         $return['data']['last_name'] = $record['data'][0]['sn'][0];
         $return['data']['email'] = $record['data'][0]['mail'][0];
         $return['data']['dn'] = $record['data'][0]['dn'];
         $return['data']['uid'] = $record['data'][0]['uidnumber'][0];
         $return['data']['gid'] = $record['data'][0]['gidnumber'][0];
     }
     yii::$app->AjaxResponse->message = $return;
     yii::$app->AjaxResponse->sendContent();
 }
 /**
  * Validates LDAP password
  *
  * @param string $password password to validate
  * @return boolean if password provided is valid for current user
  */
 public function validateLdapPassword($password)
 {
     $ldap = new LdapComponent();
     if ($ldap->login($this->user_name, $password)) {
         return true;
     } else {
         return false;
     }
 }