Exemplo n.º 1
0
 public static function CheckFields(&$arFields, $ID = false)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     $arMsg = array();
     if ($ID > 0) {
         unset($arFields["ID"]);
     }
     global $DB;
     if (($ID === false || is_set($arFields, "TASK_ID")) && strlen($arFields["TASK_ID"]) <= 0) {
         $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ID"));
     } elseif (is_set($arFields, "TASK_ID")) {
         $arTaskID = CControllerTask::GetTaskArray();
         if (!isset($arTaskID[$arFields['TASK_ID']])) {
             $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_BAD_ID"));
         }
     }
     if (($ID === false || is_set($arFields, "CONTROLLER_MEMBER_ID")) && Intval($arFields["CONTROLLER_MEMBER_ID"]) <= 0) {
         $arMsg[] = array("id" => "CONTROLLER_MEMBER_ID", "text" => GetMessage("CTRLR_TASK_ERR_CLIENTID"));
     }
     if (isset($arFields["INIT_EXECUTE"])) {
         $arFields["INIT_CRC"] = crc32($arFields["INIT_EXECUTE"]);
     }
     if (count($arMsg) <= 0 && $ID === false) {
         $strSql = "\n\t\t\t\tSELECT INIT_EXECUTE\n\t\t\t\tFROM b_controller_task\n\t\t\t\tWHERE CONTROLLER_MEMBER_ID='" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "'\n\t\t\t\tAND TASK_ID='" . $DB->ForSQL($arFields["TASK_ID"], 255) . "'\n\t\t\t\tAND DATE_EXECUTE IS NULL\n\t\t\t";
         $dbr = $DB->Query($strSql);
         while ($ar = $dbr->Fetch()) {
             if (intval($ar["INIT_EXECUTE"]) == intval($arFields["INIT_EXECUTE"])) {
                 $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ALREADY") . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "].");
                 break;
             }
         }
     }
     $APPLICATION->ResetException();
     if ($ID === false) {
         foreach (GetModuleEvents("controller", "OnBeforeTaskAdd", true) as $arEvent) {
             $bEventRes = ExecuteModuleEventEx($arEvent, array($arFields));
             if ($bEventRes === false) {
                 if ($err = $APPLICATION->GetException()) {
                     $arMsg[] = array("id" => "ID", "text" => $err->GetString() . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "].");
                 } else {
                     $arMsg[] = array("id" => "ID", "text" => "Unknown error." . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "].");
                 }
                 break;
             }
         }
     }
     if (count($arMsg) > 0) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     if ($ID === false && !is_set($arFields, "DATE_CREATE")) {
         $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction();
     }
     return true;
 }
Exemplo n.º 2
0
 function CheckFields(&$arFields, $ID = false)
 {
     $arErrMsg = array();
     if ($ID > 0) {
         unset($arFields["ID"]);
     }
     global $DB;
     if (($ID === false || is_set($arFields, "TASK_ID")) && strlen($arFields["TASK_ID"]) <= 0) {
         $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ID"));
     } elseif (is_set($arFields, "TASK_ID")) {
         $arTaskID = CControllerTask::GetTaskArray();
         if (!isset($arTaskID[$arFields['TASK_ID']])) {
             $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_BAD_ID"));
         }
     }
     if (($ID === false || is_set($arFields, "CONTROLLER_MEMBER_ID")) && Intval($arFields["CONTROLLER_MEMBER_ID"]) <= 0) {
         $arMsg[] = array("id" => "CONTROLLER_MEMBER_ID", "text" => GetMessage("CTRLR_TASK_ERR_CLIENTID"));
     }
     if (isset($arFields["INIT_EXECUTE"])) {
         $arFields["INIT_CRC"] = crc32($arFields["INIT_EXECUTE"]);
     }
     if (count($arMsg) <= 0 && $ID === false) {
         $strSql = "\n\t\t\t\tSELECT INIT_EXECUTE\n\t\t\t\tFROM b_controller_task\n\t\t\t\tWHERE CONTROLLER_MEMBER_ID='" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "'\n\t\t\t\tAND TASK_ID='" . $DB->ForSQL($arFields["TASK_ID"], 255) . "'\n\t\t\t\tAND DATE_EXECUTE IS NULL\n\t\t\t";
         $dbr = $DB->Query($strSql);
         while ($ar = $dbr->Fetch()) {
             if (intval($ar["INIT_EXECUTE"]) == intval($arFields["INIT_EXECUTE"])) {
                 $arMsg[] = array("id" => "TASK_ID", "text" => GetMessage("CTRLR_TASK_ERR_ALREADY") . " [" . IntVal($arFields["CONTROLLER_MEMBER_ID"]) . "].");
                 break;
             }
         }
     }
     if (count($arMsg) > 0) {
         $e = new CAdminException($arMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         return false;
     }
     if ($ID === false && !is_set($arFields, "DATE_CREATE")) {
         $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction();
     }
     return true;
 }
Exemplo n.º 3
0
<?php

require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php";
define("BX_STEP_SIZE", "1");
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"));
}
$arTask = CControllerTask::GetTaskArray();
$arStatus = CControllerTask::GetStatusArray();
$dbrTaskN = CControllerTask::GetList(array(), array("=STATUS" => array('N', 'P')), true);
$arTaskN = $dbrTaskN->Fetch();
$iTaskNCnt = IntVal($arTaskN['C']);
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST['act'] == 'process' && check_bitrix_sessid()) {
    $strError = "";
    $iStepSize = BX_STEP_SIZE;
    $iCntExecuted = intval($_REQUEST["executed"]);
    $iCntTotal = intval($_REQUEST["cnt"]);
    $tBeginTime = getmicrotime();
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_js.php";
    if ($iTaskNCnt > 0) {
        $dbrTask = CControllerTask::GetList(array("ID" => "ASC"), array("=STATUS" => array('N', 'P')));
        $tTasksTime = getmicrotime();
        while ($arTask = $dbrTask->Fetch()) {
            $status = CControllerTask::ProcessTask($arTask["ID"]);
            if ($status === "0" && ($e = $APPLICATION->GetException())) {
                $strError = GetMessage("CTRLR_TASK_ERR_LOCK") . "<br>" . $e->GetString();
                if (strpos($strError, "PLS-00201") !== false && strpos($strError, "'DBMS_LOCK'") !== false) {
Exemplo n.º 4
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;