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; } }