function Sign() { if ($this->secret_id === false) { $dbr_member = CControllerMember::GetByGuid($this->member_id); if (!($ar_member = $dbr_member->Fetch())) { $e = new CApplicationException("Bad member_id: " . $this->member_id . ""); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } $this->secret_id = $ar_member["SECRET_ID"]; } return parent::Sign(); }
function UnregisterExpiredAgent($id = false) { global $DB; $handledMembers = array(); if ($id > 0) { $strAddWhere = 'AND M.ID = ' . intval($id); } else { $strAddWhere = ''; } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tINNER JOIN b_controller_group G ON M.CONTROLLER_GROUP_ID = G.ID\n\t\t\tWHERE\n\t\t\t\tG.TRIAL_PERIOD > 0\n\t\t\t\tAND TO_DAYS(now()) - TO_DAYS(M.IN_GROUP_FROM) >= G.TRIAL_PERIOD\n\t\t\t\tAND SITE_ACTIVE = 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tWHERE\n\t\t\t\t(DATE_ACTIVE_FROM IS NULL OR DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ")\n\t\t\t\tAND (DATE_ACTIVE_TO IS NULL OR DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . ")\n\t\t\t\tAND ACTIVE = 'Y'\n\t\t\t\tAND SITE_ACTIVE <> 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, false); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => false)); } } $strSql = "\n\t\t\tSELECT M.ID\n\t\t\tFROM b_controller_member M\n\t\t\tWHERE\n\t\t\t\t(\n\t\t\t\t\tDATE_ACTIVE_FROM > " . $DB->CurrentTimeFunction() . "\n\t\t\t\t\tOR DATE_ACTIVE_TO < " . $DB->CurrentTimeFunction() . "\n\t\t\t\t\tOR ACTIVE = 'N'\n\t\t\t\t)\n\t\t\t\tAND SITE_ACTIVE = 'Y'\n\t\t\t\tAND DISCONNECTED = 'N'\n\t\t\t\t" . $strAddWhere . "\n\t\t"; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } elseif (!isset($handledMembers[$ar["ID"]])) { $handledMembers[$ar["ID"]] = $ar["ID"]; CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } if ($id > 0) { return true; } return "CControllerMember::UnregisterExpiredAgent();"; }
function UnregisterExpiredAgent($id = false) { global $DB; if ($id > 0) { $strAddWhere = ' AND M.ID=' . IntVal($id); } else { $strAddWhere = ''; } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . " INNER JOIN b_controller_group G ON M.CONTROLLER_GROUP_ID=G.ID " . "WHERE G.TRIAL_PERIOD>0 " . "\tAND TO_DAYS(now()) - TO_DAYS(M.IN_GROUP_FROM) >= G.TRIAL_PERIOD " . "\tAND SITE_ACTIVE = 'Y' " . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); return true; } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . "WHERE (DATE_ACTIVE_FROM IS NULL OR DATE_ACTIVE_FROM <= " . $DB->CurrentTimeFunction() . ") " . "\tAND (DATE_ACTIVE_TO IS NULL OR DATE_ACTIVE_TO >= " . $DB->CurrentTimeFunction() . ") " . "\tAND ACTIVE = 'Y' " . "\tAND SITE_ACTIVE <> 'Y'" . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, false); return true; } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => false)); } } $strSql = "SELECT M.ID " . "FROM b_controller_member M " . "WHERE (DATE_ACTIVE_FROM>" . $DB->CurrentTimeFunction() . " " . "\tOR DATE_ACTIVE_TO<" . $DB->CurrentTimeFunction() . " " . "\tOR ACTIVE = 'N') " . "\tAND SITE_ACTIVE = 'Y'" . $strAddWhere; $dbr = $DB->Query($strSql); while ($ar = $dbr->Fetch()) { if ($id > 0) { CControllerMember::CloseMember($id, true); } else { CControllerTask::Add(array("TASK_ID" => "CLOSE_MEMBER", "CONTROLLER_MEMBER_ID" => $ar["ID"], "INIT_EXECUTE_PARAMS" => true)); } } if ($id > 0) { return true; } return "CControllerMember::UnregisterExpiredAgent();"; }
$arCounters[$key] = $arCounter; $arHeaders[] = array("id" => $key, "content" => htmlspecialcharsex($arCounter["NAME"]), "sort" => $key, "align" => $arCounter["COUNTER_FORMAT"] == "F" ? "right" : "left"); } $USER_FIELD_MANAGER->AdminListAddHeaders($entity_id, $arHeaders); $lAdmin->AddHeaders($arHeaders); $arSelect = $lAdmin->GetVisibleHeaderColumns(); $arSelect[] = "ID"; $arSelect[] = "DISCONNECTED"; $arSelect[] = "SHARED_KERNEL"; if (in_array("MODIFIED_BY", $arSelect)) { $arSelect[] = "MODIFIED_BY_USER"; } if (in_array("CREATED_BY", $arSelect)) { $arSelect[] = "CREATED_BY_USER"; } $rsData = CControllerMember::GetList(array($by => $order), $arFilter, $arSelect, array(), array("nPageSize" => CAdminResult::GetNavSize($sTableID))); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRL_MEMB_ADMIN_NAVSTRING"))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); $USER_FIELD_MANAGER->AddUserFields($entity_id, $arRes, $row); $row->AddViewField("MODIFIED_BY", '[<a href="user_edit.php?ID=' . $f_MODIFIED_BY . '">' . $f_MODIFIED_BY . '</a>] ' . $f_MODIFIED_BY_USER); $row->AddViewField("CREATED_BY", '[<a href="user_edit.php?ID=' . $f_CREATED_BY . '">' . $f_CREATED_BY . '</a>] ' . $f_CREATED_BY_USER); $row->AddCheckField("ACTIVE"); if (ControllerIsSharedMode()) { $row->AddCheckField("SHARED_KERNEL"); } $row->AddInputField("NAME", array("size" => "35")); $row->AddInputField("URL", array("size" => "35")); if ($f_DISCONNECTED == 'Y') {
function ProcessTask($ID) { global $DB, $APPLICATION; $ID = IntVal($ID); $uniq = $APPLICATION->GetServerUniqID(); $uniq = "X" . $uniq . "_ctask"; $STATUS = "0"; // locking the task if (!CControllerAgent::_Lock($uniq)) { AddMessage2Log('ERROR_GET_LOCK'); return $STATUS; } // selecting task $strSql = "SELECT T.*, M.SHARED_KERNEL " . "FROM b_controller_task T LEFT JOIN b_controller_member M ON T.CONTROLLER_MEMBER_ID=M.ID " . "WHERE T.ID='" . $ID . "' AND T.STATUS<>'Y'"; $db_task = $DB->Query($strSql); if ($ar_task = $db_task->Fetch()) { $arControllerLog = array('CONTROLLER_MEMBER_ID' => $ar_task["CONTROLLER_MEMBER_ID"], 'TASK_ID' => $ar_task['ID'], 'STATUS' => 'Y'); $RESULT = ''; $STATUS = 'Y'; unset($INIT_EXECUTE_PARAMS); switch ($ar_task['TASK_ID']) { case 'SET_SETTINGS': $arControllerLog['NAME'] = 'SET_SETTINGS'; $APPLICATION->ResetException(); $res = CControllerMember::SetGroupSettings($ar_task["CONTROLLER_MEMBER_ID"], $ar_task['ID']); if ($res !== false) { $RESULT = $res; } else { $e = $APPLICATION->GetException(); $STATUS = "F"; $RESULT = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } break; case 'CLOSE_MEMBER': $arControllerLog['NAME'] = 'SITE_CLOSING'; $APPLICATION->ResetException(); $res = CControllerMember::CloseMember($ar_task["CONTROLLER_MEMBER_ID"], $ar_task['INIT_EXECUTE_PARAMS']); if ($res !== false) { $RESULT = $res; } else { $e = $APPLICATION->GetException(); $STATUS = "F"; $RESULT = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } break; case 'UPDATE': $arControllerLog['NAME'] = 'SITE_UPDATE'; $APPLICATION->ResetException(); if ($ar_task["SHARED_KERNEL"] == "Y") { $STATUS = "F"; $RESULT = GetMessage("CTRLR_TASK_ERR_KERNEL"); $arControllerLog['STATUS'] = 'N'; } else { $command = 'require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php");'; if ($ar_task["STATUS"] == "P" && strlen($ar_task["INIT_EXECUTE_PARAMS"]) > 0) { $command .= 'echo trim(CUpdateControllerSupport::Update("' . EscapePHPString($ar_task["INIT_EXECUTE_PARAMS"]) . '"));'; } else { $command .= 'echo trim(CUpdateControllerSupport::Update(""));'; } $res = CControllerMember::RunCommand($ar_task["CONTROLLER_MEMBER_ID"], $command, array(), $ar_task['ID']); if ($res !== false) { if (($p = strpos($res, "|")) > 0) { $result_code = substr($res, 0, $p); $RESULT = substr($res, $p + 1); } else { $result_code = $res; $RESULT = $res; } if ($result_code == 'ERR') { $STATUS = "F"; $arControllerLog['STATUS'] = 'N'; } elseif ($result_code == 'STP0') { $STATUS = "P"; } elseif ($result_code != 'FIN') { $STATUS = "P"; $INIT_EXECUTE_PARAMS = $result_code; } else { $RESULT = GetMessage("CTRLR_TASK_UPD_COMPL"); } } else { $STATUS = "F"; $e = $APPLICATION->GetException(); $RESULT = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } } break; case 'COUNTERS_UPDATE': $arControllerLog['NAME'] = 'UPDATE_COUNTERS'; $APPLICATION->ResetException(); $res = CControllerMember::UpdateCounters($ar_task["CONTROLLER_MEMBER_ID"], $ar_task['ID']); $RESULT = ''; if ($res !== false) { foreach ($res as $k => $v) { $RESULT .= "{$k}={$v};\r\n"; } } else { $e = $APPLICATION->GetException(); $STATUS = "F"; $RESULT = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } break; case 'REMOTE_COMMAND': $APPLICATION->ResetException(); $arControllerLog['NAME'] = 'REMOTE_COMMAND'; if (strlen($ar_task['INIT_EXECUTE_PARAMS']) > 0) { $ar_task['INIT_EXECUTE_PARAMS'] = unserialize($ar_task['INIT_EXECUTE_PARAMS']); } else { $ar_task['INIT_EXECUTE_PARAMS'] = array(); } $res = CControllerMember::RunCommand($ar_task["CONTROLLER_MEMBER_ID"], $ar_task['INIT_EXECUTE'], $ar_task['INIT_EXECUTE_PARAMS'], $ar_task['ID']); if ($res !== false) { $RESULT = $res; } else { $STATUS = "F"; $e = $APPLICATION->GetException(); $RESULT = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } break; case 'SEND_FILE': $APPLICATION->ResetException(); $arControllerLog['NAME'] = 'SEND_FILE'; break; } if (!isset($arControllerLog['DESCRIPTION'])) { $arControllerLog['DESCRIPTION'] = $RESULT; } CControllerLog::Add($arControllerLog); // updating status $arUpdateFields = array("STATUS" => $STATUS, "~DATE_EXECUTE" => $DB->CurrentTimeFunction(), "RESULT_EXECUTE" => $RESULT, "INDEX_SALT" => rand()); if (isset($INIT_EXECUTE_PARAMS)) { $arUpdateFields["INIT_EXECUTE_PARAMS"] = $INIT_EXECUTE_PARAMS; } $arUpdateBinds = array(); $strUpdate = $DB->PrepareUpdateBind("b_controller_task", $arUpdateFields, "", false, $arUpdateBinds); $strSql = "UPDATE b_controller_task SET " . $strUpdate . " WHERE ID=" . $ID; $arBinds = array(); foreach ($arUpdateBinds as $field_id) { $arBinds[$field_id] = $arUpdateFields[$field_id]; } $DB->QueryBind($strSql, $arBinds); } // unlocking CControllerAgent::_UnLock($uniq); return $STATUS; }
$arParams["TITLE"] = GetMessage("CC_BCSL_TITLE_DEFAULT"); } } else { $arParams["TITLE"] = GetMessage("CC_BCSL_TITLE_DEFAULT"); } //Component execution with cache support if ($this->StartResultCache()) { if (!CModule::IncludeModule("controller")) { $this->AbortResultCache(); ShowError(GetMessage("CC_BCSL_MODULE_NOT_INSTALLED")); return; } $arResult["TITLE"] = $arParams["TITLE"]; $arResult["ITEMS"] = array(); $arResult["MENU_ITEMS"] = array(); $arFilter = array("=ACTIVE" => "Y", "=DISCONNECTED" => "N"); if (count($arParams["GROUP"])) { $arFilter["=CONTROLLER_GROUP_ID"] = $arParams["GROUP"]; } $rsMembers = CControllerMember::GetList(array("ID" => "ASC"), $arFilter); while ($arMember = $rsMembers->GetNext()) { $arResult["ITEMS"][] = $arMember; $arResult["MENU_ITEMS"][] = array("ICONCLASS" => 'site-list-icon', "TEXT" => $arMember["NAME"], "ONCLICK" => 'window.location = \'/bitrix/admin/controller_goto.php?member=' . $arMember["ID"] . '&lang=' . LANGUAGE_ID . '\';', "TITLE" => $arMember["URL"]); } $this->SetResultCacheKeys(array()); $this->IncludeComponentTemplate(); } $js = '/bitrix/js/main/utils.js'; $APPLICATION->AddHeadString('<script type="text/javascript" src="' . $js . '?' . filemtime($_SERVER['DOCUMENT_ROOT'] . $js) . '"></script>'); $js = '/bitrix/js/main/popup_menu.js'; $APPLICATION->AddHeadString('<script type="text/javascript" src="' . $js . '?' . filemtime($_SERVER['DOCUMENT_ROOT'] . $js) . '"></script>');
$dbr = CControllerMember::GetByGuid($oRequest->member_id); if (!($ar = $dbr->Fetch())) { $oResponse->status = "484"; $oResponse->text = GetMessage("CTRLR_WS_ERR_MEMB_NFOUND"); break; } if (is_array(CControllerMember::UpdateCounters($ar["ID"]))) { $oResponse->status = "200 OK"; } else { $oResponse->status = "500 Execution error"; $e = $APPLICATION->GetException(); $oResponse->text = $e->GetString(); } break; case 'execute_event': $rsClient = CControllerMember::GetByGuid($oRequest->member_id); $arClient = $rsClient->Fetch(); if (!$arClient) { $oResponse->status = "484"; $oResponse->text = GetMessage("CTRLR_WS_ERR_MEMB_NFOUND"); break; } $params = $oRequest->arParameters['parameters']; array_unshift($params, $arClient); $result = false; foreach (GetModuleEvents("controller", $oRequest->arParameters['event_name'], true) as $arEvent) { $result = ExecuteModuleEventEx($arEvent, $params); } if ($result !== false) { $oResponse->arParameters['result'] = $result; $oResponse->status = "200 OK";
if (strncmp($arMemeber["URL"], "http://", 7) === 0) { $arMemeber["URL"] = substr($arMemeber["URL"], 7); } echo $arMemeber["URL"], $arParams["SEPARATOR"], "FOUND", $arParams["SEPARATOR"], $arMemeber["DISCONNECTED"] == "I" ? "R" : $arMemeber["ACTIVE"], "\n"; } while ($arMemeber = $rsMember->Fetch()); } else { echo "200 OK\n"; } break; case "getlist": if (isset($_REQUEST["date_format"])) { $arOptions = array("date_format" => $_REQUEST["date_format"]); } else { $arOptions = array(); } $rsMember = CControllerMember::GetList($_REQUEST["order"], $_REQUEST["filter"], $_REQUEST["select"], $arOptions); if ($arMemeber = $rsMember->Fetch()) { echo "210 OK\n"; echo "<sitelist date_format=\"" . htmlspecialcharsbx($_REQUEST["date_format"]) . "\">\n"; do { echo "\t<site>\n"; foreach ($arMemeber as $key => $value) { echo "\t\t<", $key, ">", htmlspecialcharsbx($value), "</", $key, ">\n"; } echo "\t</site>\n"; } while ($arMemeber = $rsMember->Fetch()); echo "</sitelist>"; } else { echo "200 OK\n"; } break;
$arGroups = array(); $dbr_groups = CControllerGroup::GetList(array("SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC")); while ($ar_groups = $dbr_groups->GetNext()) { $arGroups[$ar_groups["ID"]] = $ar_groups["NAME"]; } $filter = new CAdminFilter($sTableID . "_filter_id", array(GetMessage("CTRLR_UPLOAD_FILTER_GROUP"))); $filter->Begin(); ?> <tr> <td nowrap><?php echo GetMessage("CTRLR_UPLOAD_FILTER_SITE"); ?> :</td> <td nowrap> <?php $dbr_members = CControllerMember::GetList(array("SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC"), array("DISCONNECTED" => "N")); $arMembers = array(); $c = 0; while ($ar_member = $dbr_members->Fetch()) { $arMembers[$ar_member["ID"]] = $ar_member["NAME"]; $c++; if ($maxSafeCount !== false && $c > $maxSafeCount) { $arMembers = array(); break; } } if ($arMembers) { ?> <select name="fcontroller_member_id" id="fcontroller_member_id"> <option value=""><?php echo GetMessage("CTRLR_UPLOAD_FILTER_SITE_ALL");
public static function GetMember($id) { /** @global CMain $APPLICATION */ global $APPLICATION; $dbr_member = CControllerMember::GetById($id); $ar_member = $dbr_member->Fetch(); if (!$ar_member) { $e = new CApplicationException(GetMessage("CTRLR_MEM_ERR6") . " " . htmlspecialcharsex($id)); $APPLICATION->ThrowException($e); return false; } if ($ar_member['DISCONNECTED'] == 'Y') { $e = new CApplicationException(GetMessage("CTRLR_MEM_ERR7")); $APPLICATION->ThrowException($e); return false; } return $ar_member; }
} ClearVars(); $str_ACTIVE = "Y"; if (strlen($_REQUEST['MEMBER_ID']) > 0) { $str_MEMBER_ID = htmlspecialcharsbx(substr($_REQUEST['MEMBER_ID'], 0, 32)); } else { $str_MEMBER_ID = substr("m" . md5(uniqid(rand(), true)), 0, 32); } $mb = CControllerMember::GetByID($ID); if ($MOD_RIGHT < "V" || !$mb->ExtractFields("str_")) { $ID = 0; } if ($_REQUEST["countersupdate"] == "Y" && $ID > 0 && check_bitrix_sessid()) { $result = array(); if (CControllerMember::UpdateCounters($ID)) { $rsMember = CControllerMember::GetByID($ID); $arMember = $rsMember->Fetch(); $mb = CControllerGroup::GetByID($arMember["CONTROLLER_GROUP_ID"]); $arGroup = $mb->Fetch(); $result["COUNTERS_UPDATED"] = $arMember["COUNTERS_UPDATED"]; if ($arGroup["CHECK_COUNTER_FREE_SPACE"] == "Y") { $result["COUNTER_FREE_SPACE"] = $arMember["COUNTER_FREE_SPACE"]; } if ($arGroup["CHECK_COUNTER_SITES"] == "Y") { $result["COUNTER_SITES"] = $arMember["COUNTER_SITES"]; } if ($arGroup["CHECK_COUNTER_USERS"] == "Y") { $result["COUNTER_USERS"] = $arMember["COUNTER_USERS"]; } if ($arGroup["CHECK_COUNTER_LAST_AUTH"] == "Y") { $result["COUNTER_LAST_AUTH"] = $arMember["COUNTER_LAST_AUTH"];
if (strncmp($arMember["URL"], "http://", 7) === 0) { $arMember["URL"] = substr($arMember["URL"], 7); } echo $arMember["URL"], $arParams["SEPARATOR"], "FOUND", $arParams["SEPARATOR"], $arMember["DISCONNECTED"] == "I" ? "R" : $arMember["ACTIVE"], "\n"; } while ($arMember = $rsMember->Fetch()); } else { echo "200 OK\n"; } break; case "getlist": if (isset($_REQUEST["date_format"])) { $arOptions = array("date_format" => $_REQUEST["date_format"]); } else { $arOptions = array(); } $rsMember = CControllerMember::GetList($_REQUEST["order"], $_REQUEST["filter"], $_REQUEST["select"], $arOptions, $_REQUEST["limit"] > 0 ? array("nTopCount" => $_REQUEST["limit"]) : false); if ($arMember = $rsMember->Fetch()) { echo "210 OK\n"; echo "<sitelist date_format=\"" . htmlspecialcharsbx($_REQUEST["date_format"]) . "\">\n"; do { echo "\t<site>\n"; foreach ($arMember as $key => $value) { echo "\t\t<", $key, ">", htmlspecialcharsbx($value), "</", $key, ">\n"; } echo "\t</site>\n"; } while ($arMember = $rsMember->Fetch()); echo "</sitelist>"; } else { echo "200 OK\n"; } break;
$arCounters[$key] = $arCounter; $arHeaders[] = array("id" => $key, "content" => htmlspecialcharsex($arCounter["NAME"]), "sort" => $key, "align" => $arCounter["COUNTER_FORMAT"] == "F" ? "right" : "left"); } $USER_FIELD_MANAGER->AdminListAddHeaders($entity_id, $arHeaders); $lAdmin->AddHeaders($arHeaders); $arSelect = $lAdmin->GetVisibleHeaderColumns(); $arSelect[] = "ID"; $arSelect[] = "DISCONNECTED"; $arSelect[] = "SHARED_KERNEL"; if (in_array("MODIFIED_BY", $arSelect)) { $arSelect[] = "MODIFIED_BY_USER"; } if (in_array("CREATED_BY", $arSelect)) { $arSelect[] = "CREATED_BY_USER"; } $rsData = CControllerMember::GetList(array($by => $order), $arFilter, $arSelect); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRL_MEMB_ADMIN_NAVSTRING"))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); $USER_FIELD_MANAGER->AddUserFields($entity_id, $arRes, $row); $row->AddViewField("MODIFIED_BY", '[<a href="user_edit.php?ID=' . $f_MODIFIED_BY . '">' . $f_MODIFIED_BY . '</a>] ' . $f_MODIFIED_BY_USER); $row->AddViewField("CREATED_BY", '[<a href="user_edit.php?ID=' . $f_CREATED_BY . '">' . $f_CREATED_BY . '</a>] ' . $f_CREATED_BY_USER); $row->AddCheckField("ACTIVE"); if (ControllerIsSharedMode()) { $row->AddCheckField("SHARED_KERNEL"); } $row->AddInputField("NAME", array("size" => "35")); $row->AddInputField("URL", array("size" => "35")); if ($f_DISCONNECTED == 'Y') {
function GetMember($id) { $dbr_member = CControllerMember::GetById($id); $ar_member = $dbr_member->Fetch(); if (!$ar_member) { $e = new CApplicationException(GetMessage("CTRLR_MEM_ERR6") . " " . htmlspecialcharsex($id)); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } if ($ar_member['DISCONNECTED'] == 'Y') { $e = new CApplicationException(GetMessage("CTRLR_MEM_ERR7")); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return $ar_member; }
} else { //Authorize as admin $param = 'Array( "LOGIN"=>"' . EscapePHPString($USER->GetParam("LOGIN")) . '", "NAME"=>"' . EscapePHPString($USER->GetParam("FIRST_NAME")) . '", "LAST_NAME"=>"' . EscapePHPString($USER->GetParam("LAST_NAME")) . '", "EMAIL"=>"' . EscapePHPString($USER->GetParam("EMAIL")) . '", )'; $query = ' CControllerClient::AuthorizeAdmin(' . $param . '); LocalRedirect("/"); '; $arControllerLog = array('NAME' => 'AUTH', 'CONTROLLER_MEMBER_ID' => $ar["ID"], 'DESCRIPTION' => GetMessage("CTRLR_LOG_GOADMIN") . ' (' . $USER->GetParam("LOGIN") . ')', 'STATUS' => 'Y'); } CControllerLog::Add($arControllerLog); $result = CControllerMember::RunCommandRedirect($ar["ID"], $query, array(), false); if ($result !== false) { LocalRedirect($ar["URL"] . "/bitrix/main_controller.php?lang=" . LANGUAGE_ID, true); } else { $e = $APPLICATION->GetException(); require_once dirname(__FILE__) . "/../../main/include/prolog_admin_after.php"; ShowError("Error: " . $e->GetString()); ?> <a href="/bitrix/admin/controller_member_admin.php?lang=<?php echo LANGUAGE_ID; ?> "><?php echo GetMessage("CTRLR_GOTO_BACK"); ?> </a> <?php
public static function GetPropertiesDialog($documentType, $activityName, $arWorkflowTemplate, $arWorkflowParameters, $arWorkflowVariables, $arCurrentValues = null, $formName = "") { $runtime = CBPRuntime::GetRuntime(); if (!is_array($arWorkflowParameters)) { $arWorkflowParameters = array(); } if (!is_array($arWorkflowVariables)) { $arWorkflowVariables = array(); } if (!is_array($arCurrentValues)) { $arCurrentValues = array("sites_filter_type" => "all"); $arCurrentActivity =& CBPWorkflowTemplateLoader::FindActivityByName($arWorkflowTemplate, $activityName); if (is_array($arCurrentActivity["Properties"])) { $arCurrentValues["sites_filter_type"] = $arCurrentActivity["Properties"]["SitesFilterType"]; $arCurrentValues["sites_filter_groups"] = $arCurrentActivity["Properties"]["SitesFilterGroups"]; if (!is_array($arCurrentValues["sites_filter_groups"])) { $arCurrentValues["sites_filter_groups"] = array(); } $arCurrentValues["sites_filter_sites_group"] = $arCurrentActivity["Properties"]["SitesFilterSitesGroup"]; $arCurrentValues["sites_filter_sites"] = $arCurrentActivity["Properties"]["SitesFilterSites"]; if (!is_array($arCurrentValues["sites_filter_sites"])) { $arCurrentValues["sites_filter_sites"] = array(); } $arCurrentValues["sync_time"] = $arCurrentActivity["Properties"]["SyncTime"]; } } $arSiteGroups = array(); $arSites = array(); if (CModule::IncludeModule('controller')) { $rsSiteGroups = CControllerGroup::GetList(array("ID" => "ASC")); while ($arSiteGroup = $rsSiteGroups->GetNext()) { $arSiteGroups[$arSiteGroup["ID"]] = $arSiteGroup["NAME"]; } $rsSites = CControllerMember::GetList(array("ID" => "ASC"), array("=ACTIVE" => "Y", "=DISCONNECTED" => "N")); while ($arSite = $rsSites->GetNext()) { if (!array_key_exists($arSite["CONTROLLER_GROUP_ID"], $arSites)) { $arSites[$arSite["CONTROLLER_GROUP_ID"]] = array(); } $arSites[$arSite["CONTROLLER_GROUP_ID"]][$arSite["ID"]] = $arSite["NAME"]; } } return $runtime->ExecuteResourceFile(__FILE__, "properties_dialog.php", array("arCurrentValues" => $arCurrentValues, "formName" => $formName, "is_module_installed" => IsModuleInstalled('controller'), "arSiteGroups" => $arSiteGroups, "arSites" => $arSites)); }
$arFilterFields = array("find_id", "find_field"); $lAdmin->InitFilter($arFilterFields); $arFilter = array("=CONTROLLER_MEMBER_ID" => $find_id, "=FIELD" => $find_field); foreach ($arFilter as $k => $v) { if (!strlen($v)) { unset($arFilter[$k]); } } $arHeaders = array(array("id" => "CREATED_DATE", "content" => GetMessage("CTRL_MEMB_HIST_CREATED_DATE"), "default" => true), array("id" => "FIELD", "content" => GetMessage("CTRL_MEMB_HIST_FIELD"), "default" => true), array("id" => "USER_ID", "content" => GetMessage("CTRL_MEMB_HIST_USER_ID"), "default" => true), array("id" => "FROM_VALUE", "content" => GetMessage("CTRL_MEMB_HIST_FROM_VALUE"), "default" => true), array("id" => "TO_VALUE", "content" => GetMessage("CTRL_MEMB_HIST_TO_VALUE"), "default" => true), array("id" => "NOTES", "content" => GetMessage("CTRL_MEMB_HIST_NOTES"))); $lAdmin->AddHeaders($arHeaders); $arGroups = array(); $dbr_groups = CControllerGroup::GetList(array("SORT" => "ASC")); while ($ar_groups = $dbr_groups->GetNext()) { $arGroups[$ar_groups["ID"]] = $ar_groups["NAME"]; } $rsData = CControllerMember::GetLog($arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRL_MEMB_HIST_NAVSTRING"))); while ($arRes = $rsData->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arRes); $row->AddViewField("CREATED_DATE", $f_CREATED_DATE); $row->AddViewField("USER_ID", '[<a href="user_edit.php?ID=' . $f_USER_ID . '&lang=' . LANGUAGE_ID . '">' . $f_USER_ID . '</a>] ' . $f_USER_ID_USER); switch ($f_FIELD) { case "CONTROLLER_GROUP_ID": $row->AddViewField("FIELD", GetMessage("CTRL_MEMB_HIST_CONTROLLER_GROUP_ID")); $row->AddViewField("FROM_VALUE", '[<a href="controller_group_edit.php?ID=' . $f_FROM_VALUE . '&lang=' . LANGUAGE_ID . '">' . $f_FROM_VALUE . '</a>] ' . $arGroups[$f_FROM_VALUE]); $row->AddViewField("TO_VALUE", '[<a href="controller_group_edit.php?ID=' . $f_TO_VALUE . '&lang=' . LANGUAGE_ID . '">' . $f_TO_VALUE . '</a>] ' . $arGroups[$f_TO_VALUE]); break; case "SITE_ACTIVE": $row->AddViewField("FIELD", GetMessage("CTRL_MEMB_HIST_SITE_ACTIVE"));
function OnExternalLogin(&$arParams) { global $USER, $APPLICATION; $FORMAT_DATE = false; $FORMAT_DATETIME = false; $prefix = COption::GetOptionString("main", "auth_controller_prefix", "controller"); if ($prefix != '' && substr(strtolower($arParams["LOGIN"]), 0, strlen($prefix)) == $prefix || $prefix == '' && strpos($arParams["LOGIN"], "\\") === false) { $site = $prefix; if ($prefix == '') { $login = $arParams["LOGIN"]; } else { $login = substr($arParams["LOGIN"], strlen($prefix) + 1); } $password = $arParams["PASSWORD"]; $arVars = array("login" => $login, "password" => $password); $oRequest = new CControllerClientRequestTo("check_auth", $arVars); $oResponse = $oRequest->SendWithCheck(); if ($oResponse == false) { return false; } if (!$oResponse->OK()) { $e = new CApplicationException(GetMessage("MAIN_CMEMBER_ERR1") . ": " . $oResponse->text); $APPLICATION->ThrowException($e); return false; } $arUser = $oResponse->arParameters['USER_INFO']; } elseif (COption::GetOptionString("main", "auth_controller_sso", "N") == "Y" && strpos($arParams["LOGIN"], "\\") > 0) { $site = substr($arParams["LOGIN"], 0, strpos($arParams["LOGIN"], "\\")); $login = substr($arParams["LOGIN"], strpos($arParams["LOGIN"], "\\") + 1); $password = $arParams["PASSWORD"]; $arVars = array("login" => $login, "password" => $password, "site" => $site); $oRequest = new CControllerClientRequestTo("remote_auth", $arVars); $oResponse = $oRequest->SendWithCheck(); if ($oResponse == false) { return false; } if (!$oResponse->OK()) { $e = new CApplicationException(GetMessage("MAIN_CMEMBER_ERR1") . ": " . $oResponse->text); $APPLICATION->ThrowException($e); return false; } $arUser = $oResponse->arParameters['USER_INFO']; } elseif (COption::GetOptionString("controller", "auth_controller_enabled", "N") === "Y" && strpos($arParams["LOGIN"], "\\") > 0 && CModule::IncludeModule("controller")) { $site = substr($arParams["LOGIN"], 0, strpos($arParams["LOGIN"], "\\")); $login = substr($arParams["LOGIN"], strpos($arParams["LOGIN"], "\\") + 1); $password = $arParams["PASSWORD"]; $url = strtolower(trim($site, " \t\r\n./")); if (substr($url, 0, 7) != "http://" && substr($url, 0, 8) != "https://") { $url = array("http://" . $url, "https://" . $url); } $dbr_mem = CControllerMember::GetList(array(), array("=URL" => $url, "=DISCONNECTED" => "N", "=ACTIVE" => "Y")); $ar_mem = $dbr_mem->Fetch(); if (!$ar_mem) { return false; } $arGroupsMap = unserialize(COption::GetOptionString("controller", "auth_controller", serialize(array()))); $res = CControllerMember::CheckUserAuth($ar_mem["ID"], $login, $password, $arGroupsMap); if (!is_array($res)) { return false; } $arUser = $res['USER_INFO']; if (is_array($arUser)) { $arUser["CONTROLLER_ADMIN"] = "N"; } if (isset($res["FORMAT_DATE"])) { $FORMAT_DATE = $res["FORMAT_DATE"]; } if (isset($res["FORMAT_DATETIME"])) { $FORMAT_DATETIME = $res["FORMAT_DATETIME"]; } } else { return false; } //////////////////////////////////////////////////////// /// сравнивать не просто логин, а полностью\логин ///////////////////////// if (is_array($arUser) && strtolower($arUser['LOGIN']) == strtolower($login)) { //When user did not fill any inforamtion about //we'll use first part of his e-mail like login if (strlen($arUser["NAME"]) == 0 && strlen($arUser["SECOND_NAME"]) == 0) { if (preg_match("/^(.+)@/", $arUser["LOGIN"], $match)) { $arUser["NAME"] = $match[1]; } else { $arUser["NAME"] = $arUser["LOGIN"]; } } if ($site == '') { $arUser['LOGIN'] = $arUser['LOGIN']; } else { $arUser['LOGIN'] = $site . "\\" . $arUser['LOGIN']; } $USER_ID = CControllerClient::UpdateUser($arUser, $FORMAT_DATE, $FORMAT_DATETIME); if ($arUser["CONTROLLER_ADMIN"] == "Y") { AddEventHandler("main", "OnAfterUserLogin", array("CControllerClient", "OnAfterUserLogin")); $arParams["CONTROLLER_ADMIN"] = "Y"; } $arParams["REMEMBER"] = "N"; return $USER_ID; } return false; }
$result = fwrite($f, $str); fclose(); } else { $result = 0; } if ($result !== strlen($str)) { $arError[] = GetMessage('CSA_ERROR_WRITE_NGINX_CONFIG'); } } if (!count($arError)) { // restart apache $f = fopen($arParams["RELOAD_FILE"], "wb"); fwrite($f, "do it!"); fclose(); do { sleep(3); } while (file_exists($arParams["RELOAD_FILE"])); if ($ID) { CControllerMember::SetGroupSettings($ID); } LocalRedirect($site_url); $arResult["NEW_URL"] = $site_id . "." . $URL_SUBDOMAIN; } } $arResult["ERROR_MESSAGE"] = implode("<br>", $arError); //Set Title $arParams["SET_TITLE"] = $arParams["SET_TITLE"] == "N" ? "N" : "Y"; if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(GetMessage("CSA_TITLE")); } $this->IncludeComponentTemplate();