Example #1
0
 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();
 }
Example #2
0
 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();";
 }
Example #3
0
 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;
 }
Example #6
0
        $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";
Example #8
0
             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");
Example #10
0
 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"];
Example #12
0
             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 . '&amp;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 . '&amp;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 . '&amp;lang=' . LANGUAGE_ID . '">' . $f_TO_VALUE . '</a>] ' . $arGroups[$f_TO_VALUE]);
            break;
        case "SITE_ACTIVE":
            $row->AddViewField("FIELD", GetMessage("CTRL_MEMB_HIST_SITE_ACTIVE"));
Example #18
0
 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;
 }
Example #19
0
            $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();