function Connect($arFields = array()) { if (!is_object($this)) { $ldap = new CLDAP(); $ldap->arFields = $arFields; if ($ldap->Connect()) { return $ldap; } return false; } if ($this->conn = @ldap_connect($this->arFields["SERVER"], $this->arFields['PORT'])) { @ldap_set_option($this->conn, LDAP_OPT_PROTOCOL_VERSION, 3); @ldap_set_option($this->conn, LDAP_OPT_REFERRALS, 0); @ldap_set_option($this->conn, LDAP_OPT_SIZELIMIT, COption::GetOptionInt("ldap", "group_limit", 0)); @ldap_set_option($this->conn, LDAP_OPT_TIMELIMIT, 100); @ldap_set_option($this->conn, LDAP_OPT_TIMEOUT, 5); @ldap_set_option($this->conn, LDAP_OPT_NETWORK_TIMEOUT, 5); if (@ldap_bind($this->conn)) { return true; } } return false; }
/*************************************************************************** HTML form ****************************************************************************/ require $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/prolog_admin_after.php"; $aMenu = array(array("ICON" => "btn_list", "TEXT" => GetMessage("MAIN_ADMIN_MENU_LIST"), "TITLE" => GetMessage("LDAP_EDIT_LIST"), "LINK" => "ldap_server_admin.php?lang=" . LANG)); if ($ID > 0) { $aMenu[] = array("ICON" => "btn_new", "TEXT" => GetMessage("MAIN_ADMIN_MENU_CREATE"), "TITLE" => GetMessage("LDAP_EDIT_NEW"), "LINK" => "ldap_server_edit.php?lang=" . LANG); if ($MOD_RIGHT == "W") { $aMenu[] = array("ICON" => "btn_delete", "TEXT" => GetMessage("MAIN_ADMIN_MENU_DELETE"), "TITLE" => GetMessage("LDAP_EDIT_DEL"), "LINK" => "javascript:if(confirm('" . GetMessage("LDAP_EDIT_DEL_CONF") . "'))window.location='ldap_server_admin.php?action=delete&ID=" . $ID . "&lang=" . LANG . "&" . bitrix_sessid_get() . "';"); } } $context = new CAdminContextMenu($aMenu); $context->Show(); if (strlen($SERVER) > 0) { $ldp = false; $ldp = CLDAP::Connect(array("SERVER" => $SERVER, "PORT" => $PORT, "BASE_DN" => $BASE_DN, "ADMIN_LOGIN" => $ADMIN_LOGIN, "ADMIN_PASSWORD" => $ADMIN_PASSWORD, "CONVERT_UTF8" => $CONVERT_UTF8, "GROUP_FILTER" => $GROUP_FILTER, "GROUP_ID_ATTR" => $GROUP_ID_ATTR, "GROUP_NAME_ATTR" => $GROUP_NAME_ATTR, "GROUP_MEMBERS_ATTR" => $GROUP_MEMBERS_ATTR, "USER_FILTER" => $USER_FILTER, "USER_GROUP_ATTR" => $USER_GROUP_ATTR, "USER_GROUP_ACCESSORY" => $USER_GROUP_ACCESSORY, "MAX_PAGE_SIZE" => $MAX_PAGE_SIZE)); } if ($bPostback) { if (!$ldp) { $message = new CAdminMessage(array("MESSAGE" => GetMessage("LDAP_ERROR"), "DETAILS" => GetMessage("LDAP_EDIT_ERR_CON"), "TYPE" => "ERROR")); } elseif (!$ldp->BindAdmin()) { $message = new CAdminMessage(array("MESSAGE" => GetMessage("LDAP_ERROR"), "DETAILS" => GetMessage("LDAP_EDIT_ERR_AUT"), "TYPE" => "ERROR")); } elseif (strlen($_REQUEST['refresh_groups']) <= 0) { $message = new CAdminMessage(array("MESSAGE" => GetMessage("LDAP_EDIT_OK_CON"), "TYPE" => "OK")); } } $aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("LDAP_EDIT_TAB1"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LDAP_EDIT_TAB1_TITLE")), array("DIV" => "edit2", "TAB" => GetMessage("LDAP_EDIT_TAB11"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LDAP_EDIT_TAB11_TITLE")), array("DIV" => "edit3", "TAB" => GetMessage("LDAP_EDIT_TAB2"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LDAP_EDIT_USER_MAP")), array("DIV" => "edit4", "TAB" => GetMessage("LDAP_EDIT_TAB4"), "ICON" => "main_user_edit", "TITLE" => GetMessage("LDAP_EDIT_TAB4_TITLE"))); $tabControl = new CAdminTabControl("tabControl", $aTabs); if ($message) { echo $message->Show(); } else {
$strError = GetMessage("USER_IMPORT_CSV_NOT_FOUND"); } elseif ($dataSource == "ldap") { $dbLdap = CLdapServer::GetByID($ldapServer); if ($arLdap = $dbLdap->Fetch()) { // this is a test connection, thus any parameters other than related to establishing a connection, have no effect here $ldp = CLDAP::Connect( array( "SERVER" => $arLdap['SERVER'], "PORT" => $arLdap['PORT'], "ADMIN_LOGIN" => $arLdap['ADMIN_LOGIN'], "ADMIN_PASSWORD"=> $arLdap['ADMIN_PASSWORD'], "BASE_DN" => $arLdap['BASE_DN'], "GROUP_FILTER" => $arLdap['GROUP_FILTER'], "GROUP_ID_ATTR" => $arLdap['GROUP_ID_ATTR'], "USER_GROUP_ACCESSORY" => $arFields['USER_GROUP_ACCESSORY'], "USER_FILTER" => $arLdap['USER_FILTER'], "GROUP_NAME_ATTR"=> $arLdap['GROUP_NAME_ATTR'], "CONVERT_UTF8" => $arLdap['CONVERT_UTF8'], "MAX_PAGE_SIZE" => $arLdap['MAX_PAGE_SIZE'] ) ); if(!$ldp) $strError = GetMessage("USER_IMPORT_LDAP_SERVER_CONN_ERROR"); elseif(!$ldp->BindAdmin()) { $strError = GetMessage("USER_IMPORT_LDAP_SERVER_AUTH_ERROR"); $ldp->Disconnect(); }
$csvImport->externalAuthID = "LDAP#" . $ldapServer; } } if ($csvImport->IsErrorOccured()) { $strError = $csvImport->GetErrorMessage(); } } else { $strError = GetMessage("USER_IMPORT_CSV_NOT_FOUND"); } } elseif ($dataSource == "ldap") { $dbLdap = CLdapServer::GetByID($ldapServer); if ($arLdap = $dbLdap->Fetch()) { // this is a test connection, thus any parameters other than related to establishing a connection, have no effect here $ldap = new CLDAP(); $ldap->arFields = array("SERVER" => $arLdap['SERVER'], "PORT" => $arLdap['PORT'], "ADMIN_LOGIN" => $arLdap['ADMIN_LOGIN'], "ADMIN_PASSWORD" => $arLdap['ADMIN_PASSWORD'], "BASE_DN" => $arLdap['BASE_DN'], "GROUP_FILTER" => $arLdap['GROUP_FILTER'], "GROUP_ID_ATTR" => $arLdap['GROUP_ID_ATTR'], "USER_GROUP_ACCESSORY" => $arLdap['USER_GROUP_ACCESSORY'], "USER_FILTER" => $arLdap['USER_FILTER'], "GROUP_NAME_ATTR" => $arLdap['GROUP_NAME_ATTR'], "CONVERT_UTF8" => $arLdap['CONVERT_UTF8'], "MAX_PAGE_SIZE" => $arLdap['MAX_PAGE_SIZE']); if ($ldap->Connect()) { $ldp = $ldap; if (!$ldp->BindAdmin()) { $strError = GetMessage("USER_IMPORT_LDAP_SERVER_AUTH_ERROR"); } $ldp->Disconnect(); } else { $strError = GetMessage("USER_IMPORT_LDAP_SERVER_CONN_ERROR"); } } else { $strError = GetMessage("USER_IMPORT_LDAP_SERVER_NOT_FOUND"); } } elseif ($dataSource == "1c" && $create1cUser == "Y") { $user = new CUser(); $arFields = array("EMAIL" => $newUserEmail, "LOGIN" => $newUserLogin, "ACTIVE" => "Y", "PASSWORD" => $newUserPass, "CONFIRM_PASSWORD" => $newUserConfirmPass); $userID = $user->Add($arFields);