public function ldapSync($row) { $ldap_query = $this->ldap->getLDAPParam('eduid') . '=' . $row['ldap_id']; $userSync = $this->getLdapUserSync(); $attributes = $userSync->getSyncAttributes($this->ldap); $time_start = microtime(true); $lri = false; foreach (split(';', $this->ldap->getLDAPParam('people_dn')) as $PeopleDn) { $lri = $this->ldap->search($PeopleDn, $ldap_query, LDAP::SCOPE_ONELEVEL, $attributes); if (count($lri) == 1 && $lri != false) { break; } } $time_end = microtime(true); $this->ldapTime += $time_end - $time_start; if ($this->ldap->getErrno() === LDAP::ERR_SUCCESS && $lri) { $user = new User($row); $modified = false; if (count($lri) == 1) { $lr = $lri->current(); $modified = $userSync->sync($user, $lr); if ($row['ldap_uid'] != $lr->getLogin()) { $this->getLdapUserManager()->updateLdapUid($user, $lr->getLogin()); } } elseif (count($lri) == 0) { // User not found in LDAP directory $modified = true; $user->setStatus('S'); $user->setUnixStatus('D'); } if ($modified) { $this->getUserManager()->updateDb($user); } } }
/** @dataProvider bindingWithPasswordProvider */ public function testThatBindingWithAddedSlashesFailsWorks($user, $password, $filter) { $newpassword = addslashes($password); $ldap = new LDAP('ldap://cn=Manager,dc=example,dc=com:insecure@127.0.0.1:3890/dc=example,dc=com'); if ($newpassword === $password) { $this->assertTrue($ldap->authenticate($user, $password, $filter)); } else { $this->assertFalse($ldap->authenticate($user, $newpassword, $filter)); } }
/** * @static * @param $username * @param $password * @return bool */ public static function checkPassword($username, $password) { $ldapHost = Configuration::get('ldap_host', false); $ldapVersion = Configuration::get('ldap_version', 2); $ldapRDNFormat = Configuration::get('ldap_rdn_format', false); $ldap = new LDAP(); $ldap->setHost($ldapHost); $ldap->setVersion($ldapVersion); $ldap->setRDNFormat($ldapRDNFormat); return $ldap->checkPassword($username, $password); }
/** * Get an instance of the LDAP object * * @return LDAP */ protected function getLdap() { $now = time(); if ($this->connectionLastUsed && $this->ldap && $now - $this->connectionLastUsed > self::RESET_TIMEOUT) { $this->ldap->close(); $this->ldap = null; } $this->connectionLastUsed = $now; if (!empty($this->ldap)) { return $this->ldap; } $this->ldap = new Ldap($this->ldapUrl); $this->ldap->setOption(Ldap::OPT_NETWORK_TIMEOUT, 10); $this->ldap->bind($this->ldapBindUser, $this->ldapBindPassword); return $this->ldap; }
function &getSingleton() { if (self::$instance == NULL) { self::$instance = new RBAC(); } return self::$instance; }
private function getMatchingUsers(Search_SearchQuery $query, $limit) { $users = array(); $ldap_result_iterator = $this->ldap->searchUser($query->getWords()); if ($ldap_result_iterator->count() > 0) { $ldap_result_iterator->count(); $ldap_result_iterator->seek($query->getOffset()); while ($ldap_result_iterator->valid() && $limit > 0) { $ldap_result = $ldap_result_iterator->current(); $users[] = $this->getUserPresenter($ldap_result); $ldap_result_iterator->next(); $limit--; } } return $users; }
private function rename(PFUser $old_user, PFUser $new_user) { $new_dn = $this->getUserDN($new_user); $old_dn = $this->getUserDN($old_user); if ($new_dn != $old_dn) { $this->ldap->renameUser($old_dn, $this->getUserRDN($new_user)); $this->updateUserLdapId($new_user); } }
public function index() { $this->id = "content"; $this->template = "ldap/list.tpl"; $this->layout = "common/layout"; $request = Registry::get('request'); $db = Registry::get('db'); $lang = Registry::get('language'); $ldap = new LDAP($this->request->post['ldap_host'], $this->request->post['ldap_bind_dn'], $this->request->post['ldap_bind_pw']); if ($ldap->is_bind_ok()) { print "<span class=\"text-success\">" . $lang->data['text_connection_ok'] . "</span> "; $query = $ldap->query($this->request->post['ldap_base_dn'], "(mail=*)", array()); if ($query->num_rows < 1) { print "<span class=\"text-error\">" . $lang->data['text_not_found_any_email_address'] . "</span> "; } } else { print "<span class=\"text-error\">" . $lang->data['text_connection_failed'] . "</span> "; } }
private static function get_connection() { if (empty(self::$connection)) { if (!(self::$connection = ldap_connect('your.ldap.server.com', 389))) { return false; } ldap_set_option(self::$connection, LDAP_OPT_PROTOCOL_VERSION, 3); if (!ldap_bind(self::$connection)) { return false; } } return self::$connection; }
/** * Format LDAP url for apache mod_ldap * * Combine ldap parameter 'sys_ldap_server' and 'sys_ldap_dn' to * generate an Apache mod_authnz_ldap compatible url * * @see http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapurl * * @return String */ public function getLDAPServersUrl() { if ($this->ldapUrl === null) { $serverList = explode(',', $this->ldap->getLDAPParam('server')); $firstIsLdaps = false; foreach ($serverList as $k => $server) { $server = strtolower(trim($server)); if ($k == 0 && strpos($server, 'ldaps://') === 0) { $firstIsLdaps = true; } $server = str_replace('ldap://', '', $server); $server = str_replace('ldaps://', '', $server); $serverList[$k] = $server; } if ($firstIsLdaps) { $this->ldapUrl = 'ldaps://'; } else { $this->ldapUrl = 'ldap://'; } $this->ldapUrl .= implode(' ', $serverList) . '/' . $this->ldap->getLDAPParam('dn'); } return $this->ldapUrl; }
/** * (non-PHPdoc) * @see IUserSourceInterface::getUser() * 获取用户信息 * @since 1.0.0 */ public function getUser($userInfo) { $userName = $userInfo['userName']; $password = $userInfo['password']; //扩展信息 $host_str = 'ldap_host'; $port_str = 'ldap_port'; $baseCn_str = 'ldap_base_cn'; $coding_str = 'ldap_coding'; $department_str = 'ldap_sync_department'; $syncDepartment = MiniOption::getInstance()->getOptionValue($department_str); $ldapHost = MiniOption::getInstance()->getOptionValue($host_str); if ($ldapHost === NULL) { $this->errorCode = self::LDAP_INIT_ERROR; return false; } $ldapPort = MiniOption::getInstance()->getOptionValue($port_str); if ($ldapPort === NULL) { $this->errorCode = self::LDAP_INIT_ERROR; return false; } $ldapBaseCn = MiniOption::getInstance()->getOptionValue($baseCn_str); if ($ldapBaseCn === NULL) { $this->errorCode = self::LDAP_INIT_ERROR; return false; } $ldapCoding = MiniOption::getInstance()->getOptionValue($coding_str); if ($ldapCoding === NULL) { $ldapCoding = "GB2312"; } if (empty($ldapHost) || empty($ldapPort) || empty($ldapBaseCn)) { $this->errorCode = self::LDAP_INIT_ERROR; return false; } //链接LDAP服务器 $ldap = new LDAP(); $ldap->setHost($ldapHost); $ldap->setFilter($ldapBaseCn); $ldap->setCoding($ldapCoding); $ldap->setPort($ldapPort); $ldap->setSyncDepartment($syncDepartment); $result = $ldap->getMember($userName, $password); if (!$result) { $this->errorCode = MConst::ERROR_PASSWORD_INVALID; // 用户名不存在 return false; } return $result; }
/** * @return String */ public function getProjectAuthentication($row) { $conf = parent::getProjectAuthentication($row); $server_list = $this->escapeStringForApacheConf($this->ldap->getLDAPParam('server')); $ldap_dn = $this->escapeStringForApacheConf($this->ldap->getLDAPParam('dn')); $ldap_uid = $this->escapeStringForApacheConf($this->ldap->getLDAPParam('uid')); $conf .= ' TuleapLdapServers "' . $server_list . '"' . PHP_EOL; $conf .= ' TuleapLdapDN "' . $ldap_dn . '"' . PHP_EOL; $conf .= ' TuleapLdapUid "' . $ldap_uid . '"' . PHP_EOL; if ($this->ldap->getLDAPParam('bind_dn')) { $ldap_bind_dn = $this->escapeStringForApacheConf($this->ldap->getLDAPParam('bind_dn')); $ldap_bind_passwd = $this->escapeStringForApacheConf($this->ldap->getLDAPParam('bind_dn')); $conf .= ' TuleapLdapBindDN "' . $ldap_bind_dn . '"' . PHP_EOL; $conf .= ' TuleapLdapBindPassword "' . $ldap_bind_passwd . '"' . PHP_EOL; } return $conf; }
/** * @return boolean * @param string $user * @param string $password */ private function _validateSMB4($user, $password, $onlyCheckIsExistsUser = false) { //Conexao com o servidor... $connection = $this->_ldap->connect(Config::factory()->getParam('extra.ldap.samba4.host'), Config::factory()->getParam('extra.ldap.samba4.port'), Config::factory()->getParam('extra.ldap.samba4.version')); //Autenticar o Administrador... $this->_ldap->bind($connection, Config::factory()->getParam('extra.ldap.samba4.user'), Config::factory()->getParam('extra.ldap.samba4.password')); //Recuperar DN do usuario para autenticacao... $user = $this->_ldap->search($connection, Config::factory()->getParam('extra.ldap.samba4.dn'), Config::factory()->getParam('extra.ldap.samba4.filter') . $user, array('dn')); //Verificar se o usuario existe... if (count($user) > 1) { if ($onlyCheckIsExistsUser) { return 4; } } else { return 5; } //Autenticar o Usuario... $status = $this->_ldap->bind($connection, $user[0]['dn'], $password); //Fechar Conexao... $this->_ldap->close($connection); return $status; }
public static function check_all_users($exclude_ids = array()) { $query = "SELECT * FROM xbt_users WHERE is_activated = 1 AND admin = 0 AND email != '" . CONTACT_EMAIL . "'"; if (!empty($excude_ids)) { $query .= " AND uid NOT IN ('" . implode("'. '", $exclude_ids) . "')"; } if ($results = DB::query($query)) { $users = array(); while ($result = mysql_fetch_array($results)) { $user = new User($result); array_push($users, $user); } } else { return false; } $invalid_users = array(); foreach ($users as $user) { if (!LDAP::check_address($user->email)) { array_push($invalid_users, $user); } } return $invalid_users; }
/** * @deprecated not necessary any more - will be removed * @param \Zend\Ldap\Ldap $ldap A \Zend\Ldap\Ldap object * @return int The current error code for the resource */ public static function getLDAPCode(LDAP $ldap = null) { if ($ldap !== null) { return $ldap->getLastErrorCode(); } return 0; }
$validate->addError('Your registration process is complete. Please wait/ask for approval from any authority.'); } } } } } } } } else { // Not valid login Session::destroy(); $validate->addError('Wrong Username or Password'); } } else { $email = Input::get('a') . '@student.nits.ac.in'; $ldap = new LDAP(); if ($ldap->Auth($email, Input::get('b')) && Token::check(Input::get('token'))) { // verify using LDAP and check token!! if (Session::get('type') === 'faculty') { //check who logged in, differentiating between student and faculty members' login! //case for teacher's or other staff's login $validate->addError("Please <a href='http://mis.nits.ac.in'>CLICK HERE</a> for faculty login area."); Session::destroy(); } else { if (Session::get('type') === 'student') { // case for students' login!! $student = new Student(); $v = $student->validateLogin(); if ($v == 1) { $cookiename = 'sisnootp' . $student->getMobile(); if (1) {
*/ //$pattern = '/^[a-zA-Z]{1,25}$/'; $authok = false; // default $p = new stdClass(); $p->uname = vp('uname', 32); $p->secret = $_POST['secret']; // Roman'i juhtum //$p->lang = vp('lang', 2); if (!(strlen($p->uname) >= 5 && strlen($p->secret) >= PASSWORD_MIN_LEN)) { // FS#69 // $t->errors[ERROR][] = 'L001 ' . $l->txt_err_credientials; $t->errors[ERROR][] = 'L001 ' . $l->txt_err_authentication; // show_login_page($t, $o); } $ad = new LDAP(); // AD objekt $ad->debug = $w->debug; if (!$ad->connect()) { $t->errors[ERROR][] = 'L002 ' . $l->txt_err_ldap_connect; } if (!$ad->bind($p->uname, $p->secret)) { // create a syslog entry syslog(LOG_NOTICE, sprintf("AD bind failed. user: %s remote_addr: %s method: %s token: %s", $p->uname, $w->remote_addr, $auth_method, $o->token)); // AD bind failis. Nüüd proovime lokaalse kasutajaga. require INC_DIR . '/local.php'; if ($w->allow_local) { if (!isset($d)) { $d = new DATABASE(); // lokaalsed kasutajad paiknevad DB's. Siiani pole DB'd vaja läinud. $d->debug = $w->debug;
public function import_from_filter($filter_) { $filter = LDAP::join_filters(array($this->preferences['filter'], $filter_), '&'); $configLDAP = $this->get_usergroup_ldap_config(); $ldap = new LDAP($configLDAP); $sr = $ldap->search($filter, array_values($this->preferences['match'])); if ($sr === false) { Logger::error('main', 'UserGroupDB::ldap::import_from_filter search failed'); return NULL; } $result = array(); $infos = $ldap->get_entries($sr); if (!is_array($infos)) { return $result; } foreach ($infos as $dn => $info) { $g = $this->generateUsersGroupFromRow($info, $dn, $this->preferences['match']); if (!is_object($g)) { continue; } $result[$dn] = $g; } return $result; }
<?php require_once 'config.php'; require_once 'php/LDAP.class.php'; $LDAP = new LDAP($ldap_url); $usercn = $_GET['cn']; $LDAP->connect($pw_user, base64_decode($pw_pass))->addGraceLogins($usercn)->disconnect();
public function get_accounts_in_domain($domain = '') { $ldap_type = ''; $ldap_host = LDAP_HOST; $ldap_base_dn = LDAP_BASE_DN; $ldap_helper_dn = LDAP_HELPER_DN; $ldap_helper_password = LDAP_HELPER_PASSWORD; if (ENABLE_SAAS == 1) { $a = $this->model_saas_ldap->get_ldap_params_by_email("aaa@" . $domain); if (count($a) >= 5) { $ldap_type = $a[0]; $ldap_host = $a[1]; $ldap_base_dn = $a[2]; $ldap_helper_dn = $a[3]; $ldap_helper_password = $a[4]; } } list($ldap_mail_attr, $ldap_account_objectclass, $ldap_distributionlist_attr, $ldap_distributionlist_objectclass) = get_ldap_attribute_names($ldap_type); if ($ldap_host == '' || $ldap_helper_password == '') { return array(); } $ldap = new LDAP($ldap_host, $ldap_helper_dn, $ldap_helper_password); if ($ldap->is_bind_ok()) { $query = $ldap->query($ldap_base_dn, "(&(objectClass={$ldap_account_objectclass})({$ldap_mail_attr}=*@{$domain}))", array($ldap_mail_attr)); if ($query->num_rows > 0) { asort($query->rows); return $query->rows; } } return array(); }
protected function getCleanUpManager() { return new LDAP_CleanUpManager($this->ldap->getLDAPParam('daily_sync_retention_period')); }
if ($Access) { //******************************************************************************************************************************************************** echo "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "?menu_marker=si_staffedit\" >"; //------------------------------------------------------------------------------------------------- @($Name = $_POST['name'] ? $_POST['name'] : ($_GET['name'] ? $_GET['name'] : $SEARCH_DEFAULT_VALUE)); $BadSymbols = array("[", "]", "{", "}", "<", ">", "(", ")", ".", ",", ";", ":", "!", "?", "&", "#", "@", "%", "^", "+", "|", "\\", "/", "~", "\$"); $Name = str_replace($BadSymbols, "", $Name); @($dn = $_GET['dn'] ? $_GET['dn'] : $_POST['dn']); @($_GET['sortcolumn'] = $_GET['sortcolumn'] ? $_GET['sortcolumn'] : "ФИО"); @($_GET['sorttype'] = $_GET['sorttype'] ? $_GET['sorttype'] : "ASC"); //------------------------------------------------------------------------------------------------- //Обработка формы //------------------------------------------------------------------------------------------------- if (@$_GET['FormSend']) { $ldap = new LDAP($LDAPServer, $LDAP_WRITE_USER, $LDAP_WRITE_PASSWORD); if ($RE_MAIL && !preg_match("/" . $RE_MAIL . "/", $_POST[$LDAP_MAIL_FIELD])) { $Errors[$LDAP_MAIL_FIELD] = $_POST[$LDAP_MAIL_FIELD]; } else { $info[$LDAP_MAIL_FIELD] = $_POST[$LDAP_MAIL_FIELD]; } if ($RE_OTHER_TELEPHONE && !preg_match("/" . $RE_OTHER_TELEPHONE . "/", $_POST[$LDAP_INTERNAL_PHONE_FIELD])) { $Errors[$LDAP_INTERNAL_PHONE_FIELD] = $_POST[$LDAP_INTERNAL_PHONE_FIELD]; } else { $info[$LDAP_INTERNAL_PHONE_FIELD] = $_POST[$LDAP_INTERNAL_PHONE_FIELD]; } if ($RE_TELEPHONE_NUMBER && !preg_match("/" . $RE_TELEPHONE_NUMBER . "/", $_POST[$LDAP_CITY_PHONE_FIELD])) { $Errors[$LDAP_CITY_PHONE_FIELD] = $_POST[$LDAP_CITY_PHONE_FIELD]; } else { $info[$LDAP_CITY_PHONE_FIELD] = $_POST[$LDAP_CITY_PHONE_FIELD]; }
$ldap_password = $_POST["ldap_password"]; } else { print "<p class=\"error\"><strong>Error:</strong> There's no LDAP password input.</p>\n"; HTMLFooter(); die; } if (isset($_POST["ldap_base"]) && $_POST["ldap_base"] != "") { $ldap_base = $_POST["ldap_base"]; } else { print "<p class=\"error\"><strong>Error:</strong> There's no distinguished name input for LDAP.</p>\n"; HTMLFooter(); die; } // check LDAP connection require_once PMF_ROOT_DIR . "/inc/ldap.php"; $ldap = new LDAP($ldap_server, $ldap_port, $ldap_user, $ldap_base); if (!$ldap) { print "<p class=\"error\"><strong>LDAP Error:</strong> " . $ldap->error() . "</p>\n"; HTMLFooter(); die; } } // check user entries if (isset($_POST["password"]) && $_POST["password"] != "") { $password = $_POST["password"]; } else { print "<p class=\"error\"><strong>Error:</strong> There's no password for the administrator's account. Please set your password.</p>\n"; HTMLFooter(); die; } if (isset($_POST["password_retyped"]) && $_POST["password_retyped"] != "") {
public function count_emails($s = '') { $count = 0; if (strlen($s) < 1) { return $count; } if (ENABLE_LDAP_AUTH == 1) { $ldap = new LDAP(LDAP_HOST, LDAP_HELPER_DN, LDAP_HELPER_PASSWORD); if ($ldap->is_bind_ok()) { $query = $ldap->query(LDAP_BASE_DN, "(&(objectClass=" . LDAP_ACCOUNT_OBJECTCLASS . ")(" . LDAP_MAIL_ATTR . "=" . $s . "*))", array()); if (isset($query->rows)) { $count = $query->num_rows; } } } $query = $this->db->query("SELECT COUNT(*) AS num FROM `" . TABLE_EMAIL . "` WHERE email LIKE ?", array($s . "%")); $count += $query->row['num']; return $count; }
public static function loadElements($type_, $group_) { Logger::debug('main', "Abstract_Liaison_activedirectory::loadElements ({$type_},{$group_})"); $userGroupDB = UserGroupDB::getInstance(); $userGroupDB_activedirectory = new UserGroupDB_activedirectory(); $use_child_group = false; $userGroupDB_activedirectory_preferences = $userGroupDB_activedirectory->preferences; if (array_key_exists('use_child_group', $userGroupDB_activedirectory_preferences)) { if ($userGroupDB_activedirectory_preferences['use_child_group'] == 1 || $userGroupDB_activedirectory_preferences['use_child_group'] == '1') { $use_child_group = true; } } $group = $userGroupDB->import($group_); if (!is_object($group)) { Logger::error('main', "Abstract_Liaison_activedirectory::loadElements load group ({$group_}) failed"); return NULL; } if ($group->type != 'static') { return NULL; } $elements = array(); $id_ = $group->id; $userDBAD2 = new UserDB_activedirectory(); $userDBAD = UserDB::getInstance(); if (get_class($userDBAD) == get_class($userDBAD2)) { $userDBAD = $userDBAD2; // for cache } $config_ldap = $userDBAD->makeLDAPconfig(); if (isset($group->extras) && is_array($group->extras) && isset($group->extras['member'])) { $buf = $group->extras; } else { $config_ldap['match'] = array('description' => 'description', 'name' => 'name', 'member' => 'member'); if (str_endswith(strtolower($id_), strtolower($config_ldap['suffix'])) === true) { $id2 = substr($id_, 0, -1 * strlen($config_ldap['suffix']) - 1); } else { $id2 = $id_; } $expl = explode(',', $id2, 2); if (count($expl) < 2) { Logger::error('main', "Abstract_Liaison_activedirectory::loadElements({$type_},{$group_}) count(expl) != 2 (count=" . count($expl) . ")(id2=" . $id2 . ")"); return NULL; } $config_ldap['userbranch'] = $expl[1]; $buf = array(); $buf['id'] = $id_; $ldap = new LDAP($config_ldap); $sr = $ldap->search($expl[0], array_keys($config_ldap['match'])); if ($sr === false) { Logger::error('main', "Abstract_Liaison_activedirectory::loadElements search failed for ({$id_})"); return NULL; } $infos = $ldap->get_entries($sr); $keys = array_keys($infos); $dn = $keys[0]; $info = $infos[$dn]; foreach ($config_ldap['match'] as $attribut => $match_ldap) { if (isset($info[$match_ldap])) { unset($info[$match_ldap]['count']); $buf[$attribut] = $info[$match_ldap]; } } } if (isset($buf['member']) && is_array($buf['member'])) { foreach ($buf['member'] as $member) { $u = $userDBAD->importFromDN($member); if (is_object($u)) { if ($u->hasAttribute('objectclass')) { if (in_array('user', $u->getAttribute('objectclass'))) { $l = new Liaison($u->getAttribute('login'), $group_); $elements[$l->element] = $l; } else { if (in_array('group', $u->getAttribute('objectclass')) && $use_child_group == true) { $ret1 = self::loadElements($type_, 'static_' . $member); if (is_array($ret1)) { foreach ($ret1 as $element1 => $liaison1) { $elements[$element1] = $liaison1; } } } } } else { $l = new Liaison($u->getAttribute('login'), $group_); $elements[$l->element] = $l; } } } } return $elements; }
public static function getCompanyNameLdapFilter() { $bookmark_name=LDAP::escapeFilterValue($GLOBALS['BOOKMARK_NAME']); $bookmark_attr=$GLOBALS['bookmark_attr']; if(($bookmark_name=="*") || ( (@$_POST['form_sent']) && (@!$GLOBALS['only_bookmark']) ) ) { foreach($GLOBALS['BOOKMARK_NAMES'] AS $key=>$value) { $bookmark_names=LDAP::escapeFilterValue(array_keys($value)); if($GLOBALS['BOOKMARK_NAME_EXACT_FIT'][$bookmark_attr]) $filters[]="|(".$key."=".implode(")(".$key."=", $bookmark_names).")"; else { $filter="|(".$key."=*".implode("*)(".$key."=*", $bookmark_names)."*)"; $filters[]=str_replace("***", "*", $filter); } } $filter="(&(".implode(")(", $filters)."))"; } else { if($GLOBALS['BOOKMARK_NAME_EXACT_FIT'][$bookmark_attr]) $filter="(".$bookmark_attr."=".$bookmark_name.")"; else $filter="(".$bookmark_attr."=*".$bookmark_name."*)"; } //echo $filter; return $filter; }
<?php require_once '../libs/MPDF60/mpdf.php'; require_once '../config.php'; require_once "../libs/forms.php"; require_once "../libs/staff.php"; require_once "../libs/phones.php"; require_once "../libs/pdf.php"; if ($ENABLE_PDF_EXPORT) { Application::makeLdapConfigAttrLowercase(); $menu_marker = "si_export_pdf_alphabet"; @($BOOKMARK_NAME = $_POST['bookmark_name'] ? $_POST['bookmark_name'] : ($_GET['bookmark_name'] ? $_GET['bookmark_name'] : current(array_keys($BOOKMARK_NAMES[current(array_keys($BOOKMARK_NAMES))])))); @($bookmark_attr = $_POST['bookmark_attr'] ? $_POST['bookmark_attr'] : ($_GET['bookmark_attr'] ? $_GET['bookmark_attr'] : current(array_keys($BOOKMARK_NAMES)))); $html .= PDF::get_pdf_head(); $html .= "\n\t<table cellpadding='0' border='0' cellspacing='0' class='staff'>\n\t"; $ldap = new LDAP($LDAPServer, $LDAPUser, $LDAPPassword); $CompanyNameLdapFilter = Application::getCompanyNameLdapFilter(); if ($USE_DISPLAY_NAME) { $DisplayName = $DISPLAY_NAME_FIELD; } else { $DisplayName = $LDAP_NAME_FIELD; } $Staff = $ldap->getArray($OU, "(&" . $CompanyNameLdapFilter . "(" . $LDAP_CN_FIELD . "=*)" . $DIS_USERS_COND . ")", array($DisplayName, $LDAP_MAIL_FIELD, $LDAP_INTERNAL_PHONE_FIELD, $LDAP_CITY_PHONE_FIELD, $LDAP_BIRTH_FIELD, $LDAP_TITLE_FIELD, $LDAP_DEPARTMENT_FIELD, $LDAP_CELL_PHONE_FIELD), array($DisplayName, array('ad_def_full_name'))); if (is_array($Staff)) { $sizeof = sizeof($Staff[$DisplayName]); for ($i = 0; $i < $sizeof; $i++) { if (!($PDF_HIDE_STAFF_WITHOUT_PHONES && !$Staff[$LDAP_INTERNAL_PHONE_FIELD][$i] && !$Staff[$HIDE_CITY_PHONE_FIELD][$i] && !$Staff[$LDAP_CELL_PHONE_FIELD][$i])) { $FIO = explode(" ", $Staff[$DisplayName][$i]); $Surname = $Staff[$DisplayName][$i]; $Name = ""; $Patronymic = "";
public static function prefsIsValid($prefs_, &$log = array()) { $config_AD = $prefs_->get('UserDB', 'activedirectory'); $minimum_keys = array('hosts', 'domain', 'login', 'password', 'domain'); foreach ($minimum_keys as $m_key) { if (!isset($config_AD[$m_key])) { $log['config_AD has key ' . $m_key] = false; return false; } // else { // $log['config_AD has key '.$m_key] = true; // } } $ldap_suffix = domain2suffix($config_AD['domain']); if (!$ldap_suffix) { $log['domain2suffix for \'' . $config_AD['domain'] . '\''] = false; return false; } $log['domain2suffix for \'' . $config_AD['domain'] . '\''] = true; if (!UserDB_ldap::isValidDN($ldap_suffix)) { $log['isValidDN for \'' . $ldap_suffix . '\''] = false; return false; } $log['isValidDN for \'' . $ldap_suffix . '\''] = true; $config_ldap = self::makeLDAPconfig($config_AD); $LDAP2 = new LDAP($config_ldap); $ret = $LDAP2->connect($log); if ($ret === false) { // $log['LDAP connect to \''.$config_ldap['host'].'\''] = false; return false; } // $log['Connect to AD'] = true; $LDAP2->disconnect(); return true; }
<?php require_once dirname(__FILE__) . '/../../model/Ldap.php'; session_start(); header('content-type: application/json'); $uid = $_SESSION['login']; $dado = $_REQUEST['dado']; $tipo = $_REQUEST['tipo']; $ldap = new LDAP(); if ($tipo == 0) { $ldap->modificar("apelido", "uid={$uid},ou=teste,ou=usuarios,dc=ufvjm,dc=edu,dc=br", $dado); } else { if ($tipo == 1) { $ldap->modificar("email_alternativo", "uid={$uid},ou=teste,ou=usuarios,dc=ufvjm,dc=edu,dc=br", $dado); } else { if ($tipo == 2) { $ldap->modificar("telefone", "uid={$uid},ou=teste,ou=usuarios,dc=ufvjm,dc=edu,dc=br", $dado); } else { if ($tipo == 3) { $ldap->modificar("senha", "uid={$uid},ou=teste,ou=usuarios,dc=ufvjm,dc=edu,dc=br", $dado); } else { echo json_encode(false); } } } } echo json_encode(true);
<?php $ldap = new LDAP($LDAPServer, $LDAPUser, $LDAPPassword); //Соединяемся с сервером // Определяем какой атрибут будем использовать в качестве формирования ФИО сотрудника //------------------------------------------------------------------------------------------------------------- if ($USE_DISPLAY_NAME) { $DisplayName = $DISPLAY_NAME_FIELD; } else { $DisplayName = $LDAP_NAME_FIELD; } //------------------------------------------------------------------------------------------------------------- // Делаем фильтр для выборки сотрудников нужных компаний //------------------------------------------------------------------------------------------------------------- $CompanyNameLdapFilter = Application::getCompanyNameLdapFilter(); //------------------------------------------------------------------------------------------------------------- $LdapListAttrs = array($LDAP_DISTINGUISHEDNAME_FIELD, $DisplayName, $LDAP_MAIL_FIELD, $LDAP_INTERNAL_PHONE_FIELD, $LDAP_CITY_PHONE_FIELD, $LDAP_ST_DATE_VACATION_FIELD, $LDAP_END_DATE_VACATION_FIELD, $LDAP_TITLE_FIELD, $LDAP_DEPARTMENT_FIELD, $LDAP_CELL_PHONE_FIELD, $LDAP_MANAGER_FIELD, $LDAP_COMPUTER_FIELD, $LDAP_DEPUTY_FIELD, $LDAP_GUID_FIELD, $LDAP_CREATED_DATE_FIELD, $LDAP_USERPRINCIPALNAME_FIELD); //Получаем правильно отсортированных сотрудников с необходимыми атрибутами LDAP $Staff = $ldap->getArray($OU, "(&" . $CompanyNameLdapFilter . "(" . $LDAP_CREATED_DATE_FIELD . ">=" . date('Ymd', time() - $NEW_USERS_NUM_DAYS * 24 * 60 * 60) . "000000.0Z)(" . $LDAP_CN_FIELD . "=*)" . $DIS_USERS_COND . ")", $LdapListAttrs, array($LDAP_CREATED_DATE_FIELD), 'DESC'); if (is_array($Staff)) { // Шапка таблицы //------------------------------------------------------------------------------------------------------------- echo "\n\t\t<table class=\"sqltable\" cellpadding=\"4\">\n\t\t<th><div>ФИО</div></th>\n\t\t<th><div>Должность</div></th>\n\t\t<th><div>E-mail</div></th>\n\t\t<th><div>" . $L->l('intrenal_phone') . "</div></th>\n\t\t"; if (!$HIDE_CITY_PHONE_FIELD) { echo "<th><div>" . $L->l('city_phone') . "</div></th>"; } if (!$HIDE_CELL_PHONE_FIELD) { echo "<th><div>" . $L->l('cell_phone') . "</div></th>"; } if (Staff::showComputerName($Login)) { //Если сотрудник является администратором справочника