Exemplo n.º 1
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();";
 }
Exemplo n.º 2
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();";
 }
    public function Execute()
    {
        global $DB;
        if (!CModule::IncludeModule("controller")) {
            return CBPActivityExecutionStatus::Closed;
        }
        if (!CModule::IncludeModule("iblock")) {
            return CBPActivityExecutionStatus::Closed;
        }
        $rootActivity = $this->GetRootActivity();
        $documentId = $rootActivity->GetDocumentId();
        if ($documentId[0] !== 'iblock' || $documentId[1] !== 'CIBlockDocument' || $documentId[2] <= 0) {
            return CBPActivityExecutionStatus::Closed;
        }
        $arFilter = array("=ACTIVE" => "Y", "=DISCONNECTED" => "N");
        if ($this->SitesFilterType == "groups") {
            if (is_array($this->SitesFilterGroups)) {
                $arFilter["=CONTROLLER_GROUP_ID"] = $this->SitesFilterGroups;
            } else {
                return CBPActivityExecutionStatus::Closed;
            }
        } elseif ($this->SitesFilterType == "sites") {
            if (intval($this->SitesFilterSitesGroup) > 0 && is_array($this->SitesFilterSites)) {
                $arFilter["=CONTROLLER_GROUP_ID"] = $this->SitesFilterSitesGroup;
                $arFilter["=ID"] = $this->SitesFilterSites;
            } else {
                return CBPActivityExecutionStatus::Closed;
            }
        }
        $rootActivity = $this->GetRootActivity();
        $documentId = $rootActivity->GetDocumentId();
        $export_file = $this->Export($documentId);
        if (strlen($export_file) <= 0) {
            return CBPActivityExecutionStatus::Closed;
        }
        $documentService = $this->workflow->GetService("DocumentService");
        $document = $documentService->GetDocument($documentId);
        $arIBlock = CIBlock::GetArrayByID($document["IBLOCK_ID"]);
        $iblock_type = $arIBlock["IBLOCK_TYPE_ID"];
        $query = '
if(version_compare(SM_VERSION, "11.0.10") < 0)
{
	echo "Client main module version >= 11.0.10 is required.";
	return false;
}

$charset_to = ' . $this->PHP2PHP(LANG_CHARSET) . ';
$export_file = CTempFile::GetDirectoryName()."import.tar.gz";
$iblock_type = ' . $this->PHP2PHP($iblock_type) . ';

if(!CModule::IncludeModule("iblock"))
{
	echo "Information block module not installed";
	return false;
}

$iblock_id = CIBlockCMLImport::GetIBlockByXML_ID(' . $this->PHP2PHP($arIBlock['XML_ID']) . ');
if(!$iblock_id)
{
	$rsType = CIBlockType::GetByID($iblock_type);
	if(!$rsType->Fetch())
	{
		echo "Information block type not found: $iblock_type";
		return false;
	}
}

CheckDirPath($export_file);
file_put_contents($export_file, base64_decode("' . base64_encode(file_get_contents($export_file)) . '"));
if(!file_exists($export_file) || !is_file($export_file))
{
	echo "Can not create file: ".$export_file;
	return false;
}

$USER->Authorize(1);
$USER->SetControllerAdmin(true);
$res = ImportXMLFile($export_file, $iblock_type, false, "N", "N", true, false, true, true);

if($res !== true)
{
	echo $APPLICATION->ConvertCharset($res, LANG_CHARSET, $charset_to);
	return false;
}

return true;
';
        $rsMembers = CControllerMember::GetList(array("ID" => "ASC"), $arFilter);
        if ($this->SyncTime == "task") {
            while ($arMember = $rsMembers->Fetch()) {
                CControllerTask::Add(array("TASK_ID" => "REMOTE_COMMAND", "CONTROLLER_MEMBER_ID" => $arMember["ID"], "INIT_EXECUTE" => $query));
            }
        } else {
            while ($arMember = $rsMembers->Fetch()) {
                CControllerMember::RunCommandWithLog($arMember["ID"], $query, array(), false, 'run_immediate');
            }
        }
        return CBPActivityExecutionStatus::Closed;
    }
     }
 }
 $runQueue = array();
 $dbr_members = CControllerMember::GetList(array("ID" => "ASC"), $arFilter);
 while ($ar_member = $dbr_members->Fetch()) {
     $runQueue[$ar_member["ID"]] = $ar_member["NAME"];
     $cnt++;
     if ($maxSafeCount !== false && $cnt > $maxSafeCount) {
         $runQueue = array();
         break;
     }
 }
 $cnt_ok = 0;
 foreach ($runQueue as $memberId => $memberName) {
     if ($add_task == "Y") {
         if (CControllerTask::Add(array("TASK_ID" => "REMOTE_COMMAND", "CONTROLLER_MEMBER_ID" => $memberId, "INIT_EXECUTE" => $query))) {
             $cnt_ok++;
         }
     } else {
         echo BeginNote();
         echo "<b><u>" . htmlspecialcharsEx($memberName) . ":</u></b><br>";
         $result = CControllerMember::RunCommandWithLog($memberId, $query);
         if ($result === false) {
             $e = $APPLICATION->GetException();
             echo "Error: " . $e->GetString();
         } else {
             echo nl2br($result);
         }
         echo EndNote();
     }
 }
 function SiteUpdate($member_id)
 {
     CControllerTask::Add(array("TASK_ID" => "UPDATE", "CONTROLLER_MEMBER_ID" => $member_id));
 }
Exemplo n.º 6
0
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_ERR_DELETE"), $ID);
                }
                $DB->Commit();
                break;
            case "repeat":
                if (!CControllerTask::Update($ID, array("STATUS" => "N", "DATE_EXECUTE" => false))) {
                    if ($e = $APPLICATION->GetException()) {
                        $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_REP_DELETE") . " " . $ID . ": " . $e->GetString(), $ID);
                    }
                }
                break;
        }
    }
}
$rsData = CControllerTask::GetList(array($by => $order), $arFilter);
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRLR_TASK_NAV")));
$arHeaders = array();
$arHeaders[] = array("id" => "CONTROLLER_MEMBER_NAME", "content" => GetMessage("CTRLR_TASK_FLT_CLIENT"), "default" => true, "sort" => "CONTROLLER_MEMBER_NAME");
$arHeaders[] = array("id" => "TASK_ID", "content" => GetMessage("CTRLR_TASK_COLUMN_TASK"), "default" => true, "sort" => "TASK_ID");
$arHeaders[] = array("id" => "STATUS", "content" => GetMessage("CTRLR_TASK_COLUMN_STATUS"), "default" => true, "sort" => "STATUS");
$arHeaders[] = array("id" => "DATE_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_EXEC"), "default" => true, "sort" => "DATE_EXECUTE");
$arHeaders[] = array("id" => "INIT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_ARGS"));
$arHeaders[] = array("id" => "RESULT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_RESULT"), "default" => true);
$arHeaders[] = array("id" => "CONTROLLER_MEMBER_URL", "content" => GetMessage("CTRLR_TASK_COLUMN_URL"), "sort" => "CONTROLLER_MEMBER_URL");
$arHeaders[] = array("id" => "TIMESTAMP_X", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_MOD"), "sort" => "timestamp_x");
$arHeaders[] = array("id" => "DATE_CREATE", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_CRE"), "default" => true, "sort" => "DATE_CREATE");
$arHeaders[] = array("id" => "ID", "content" => "ID", "default" => true, "sort" => "id");
$lAdmin->AddHeaders($arHeaders);
Exemplo n.º 7
0
 function ProcessAllTask()
 {
     global $DB, $APPLICATION;
     $uniq = $APPLICATION->GetServerUniqID();
     $uniq = "X" . $uniq . "_controller_all_task";
     if (!CControllerAgent::_Lock($uniq)) {
         return false;
     }
     $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P')));
     while ($arTask = $dbrTask->Fetch()) {
         CControllerTask::ProcessTask($arTask["ID"]);
     }
     CControllerAgent::_UnLock($uniq);
     return true;
 }
Exemplo n.º 8
0
# mailto:sources@bitrixsoft.com              #
##############################################
*/
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php";
CModule::IncludeModule("controller");
require_once $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/controller/prolog.php";
IncludeModuleLangFile(__FILE__);
$MOD_RIGHT = $APPLICATION->GetGroupRight("controller");
if ($MOD_RIGHT < "V") {
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
}
$sTableID = "t_controll_log";
$oSort = new CAdminSorting($sTableID, "id", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);
$arLogNames = CControllerLog::GetNameArray();
$arTaskNames = CControllerTask::GetTaskArray();
$arFilterRows = array(GetMessage("CTRL_LOG_ADMIN_FILTER_STATUS"), GetMessage("CTRL_LOG_ADMIN_FILTER_DESC"), "ID", GetMessage("CTRL_LOG_ADMIN_FILTER_CLIENT"), GetMessage("CTRL_LOG_ADMIN_FILTER_IDCLIENT"), GetMessage("CTRL_LOG_ADMIN_FILTER_TASK"), GetMessage("CTRL_LOG_ADMIN_FILTER_TASKID"), GetMessage("CTRL_LOG_ADMIN_FILTER_CREATED"));
$filter = new CAdminFilter($sTableID . "_filter_id", $arFilterRows);
$arFilterFields = array("find_name", "find_name2", "find_description", "find_id", "find_status", "find_task_id", "find_task_name", "find_controller_member_id", "find_controller_member_name", "find_timestamp_x_from", "find_timestamp_x_to");
$lAdmin->InitFilter($arFilterFields);
$arFilter = array("ID" => $find_id, "CONTROLLER_MEMBER_ID" => $find_controller_member_id, "STATUS" => $find_status, "TASK_ID" => $find_task_id, "%NAME" => strlen($find_name2) > 0 ? $find_name2 : $find_name, "%DESCRIPTION" => $find_description, "%TASK_NAME" => $find_task_name, "%CONTROLLER_MEMBER_NAME" => $find_controller_member_name, ">=TIMESTAMP_X" => $find_timestamp_x_from, "<=TIMESTAMP_X" => $find_timestamp_x_to);
if ($MOD_RIGHT >= "V" && ($arID = $lAdmin->GroupAction())) {
    if ($_REQUEST['action_target'] == 'selected') {
        $rsData = CControllerLog::GetList(array($by => $order), $arFilter);
        while ($arRes = $rsData->Fetch()) {
            $arID[] = $arRes['ID'];
        }
    }
    foreach ($arID as $ID) {
        if (strlen($ID) <= 0) {
            continue;
Exemplo n.º 9
0
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_ERR_DELETE"), $ID);
                }
                $DB->Commit();
                break;
            case "repeat":
                if (!CControllerTask::Update($ID, array("STATUS" => "N", "DATE_EXECUTE" => false))) {
                    if ($e = $APPLICATION->GetException()) {
                        $lAdmin->AddGroupError(GetMessage("CTRLR_TASK_REP_DELETE") . " " . $ID . ": " . $e->GetString(), $ID);
                    }
                }
                break;
        }
    }
}
$rsData = CControllerTask::GetList(array($by => $order), $arFilter, false, array("nPageSize" => CAdminResult::GetNavSize($sTableID)));
$rsData = new CAdminResult($rsData, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("CTRLR_TASK_NAV")));
$arHeaders = array();
$arHeaders[] = array("id" => "CONTROLLER_MEMBER_NAME", "content" => GetMessage("CTRLR_TASK_FLT_CLIENT"), "default" => true, "sort" => "CONTROLLER_MEMBER_NAME");
$arHeaders[] = array("id" => "TASK_ID", "content" => GetMessage("CTRLR_TASK_COLUMN_TASK"), "default" => true, "sort" => "TASK_ID");
$arHeaders[] = array("id" => "STATUS", "content" => GetMessage("CTRLR_TASK_COLUMN_STATUS"), "default" => true, "sort" => "STATUS");
$arHeaders[] = array("id" => "DATE_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_EXEC"), "default" => true, "sort" => "DATE_EXECUTE");
$arHeaders[] = array("id" => "INIT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_ARGS"));
$arHeaders[] = array("id" => "RESULT_EXECUTE", "content" => GetMessage("CTRLR_TASK_COLUMN_RESULT"), "default" => true);
$arHeaders[] = array("id" => "CONTROLLER_MEMBER_URL", "content" => GetMessage("CTRLR_TASK_COLUMN_URL"), "sort" => "CONTROLLER_MEMBER_URL");
$arHeaders[] = array("id" => "TIMESTAMP_X", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_MOD"), "sort" => "timestamp_x");
$arHeaders[] = array("id" => "DATE_CREATE", "content" => GetMessage("CTRLR_TASK_COLUMN_DATE_CRE"), "default" => true, "sort" => "DATE_CREATE");
$arHeaders[] = array("id" => "ID", "content" => "ID", "default" => true, "sort" => "id");
$lAdmin->AddHeaders($arHeaders);
Exemplo n.º 10
0
<?php

$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . "/../../../..");
// define("NO_KEEP_STATISTIC", true);
// define("NOT_CHECK_PERMISSIONS",true);
@set_time_limit(0);
@ignore_user_abort(true);
//// define("LANG","en");
// define("BX_CRONTAB", true);
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
if (CModule::IncludeModule("controller")) {
    CControllerTask::ProcessAllTask();
}
//echo 'OK';
Exemplo n.º 11
0
 public static function ProcessAllTask()
 {
     $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P')));
     while ($arTask = $dbrTask->Fetch()) {
         CControllerTask::ProcessTask($arTask["ID"]);
     }
     return true;
 }