function SetTaskSecurity($task_id, $module_id, $arOperations, $letter = '')
 {
     $ID = 0;
     $dbr_task = CTask::GetList(array(), array('NAME' => $task_id, 'MODULE_ID' => $module_id, "BINDING" => 'module'));
     if ($ar_task = $dbr_task->Fetch()) {
         if ($ar_task['SYS'] == 'Y') {
             return false;
         }
         $ID = $ar_task['ID'];
     }
     $arFields = array("NAME" => $task_id, "LETTER" => $letter, "BINDING" => 'module', "MODULE_ID" => $module_id);
     if ($ID > 0) {
         $res = CTask::Update($arFields, $ID);
     } else {
         $ID = CTask::Add($arFields);
         $res = $ID > 0;
         if ($res) {
             $arBackup = CControllerClient::GetBackup();
             $arBackup['security_task'][] = $ID;
             CControllerClient::SetBackup($arBackup);
         }
     }
     if ($res) {
         CTask::SetOperations($ID, $arOperations, true);
     }
 }
Example #2
0
****************************************************************************/
$ID = intval($_REQUEST["ID"]);
$COPY_ID = intval($_REQUEST["COPY_ID"]);
if ($COPY_ID > 0) {
    $ID = $COPY_ID;
}
$message = null;
$aTabs = array(array("DIV" => "edit1", "TAB" => GetMessage("TAB_1"), "ICON" => "", "TITLE" => GetMessage("TAB_1_TITLE")), array("DIV" => "edit2", "TAB" => GetMessage("TAB_2"), "ICON" => "", "TITLE" => GetMessage('TAB_2_TITLE')));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
if ($_SERVER["REQUEST_METHOD"] == "POST" && ($_POST["save"] != '' || $_POST["apply"] != '') && $USER->CanDoOperation('edit_tasks') && check_bitrix_sessid()) {
    $aMsg = array();
    $LETTER = strtoupper($_POST["LETTER"]);
    $arFields = array("NAME" => $_POST["NAME"], "DESCRIPTION" => $_POST["DESCRIPTION"], "LETTER" => $LETTER, "BINDING" => $_POST["BINDING"], "MODULE_ID" => $_POST["MODULE_ID"]);
    if ($ID > 0 && $COPY_ID <= 0) {
        CTask::UpdateModuleRights($ID, $_POST["MODULE_ID"], $LETTER);
        CTask::Update($arFields, $ID);
    } else {
        $ID = CTask::Add($arFields);
    }
    /** @var CAdminException $e */
    if ($e = $APPLICATION->GetException()) {
        $aMsg = $e->messages;
    }
    if (empty($aMsg)) {
        if (!isset($_POST['OPERATION_ID'])) {
            $arOperationIds = array();
        } else {
            $arOperationIds = $_POST['OPERATION_ID'];
        }
        $old_arOperationIds = CTask::GetOperations($ID);
        if (count(array_diff($old_arOperationIds, $arOperationIds)) > 0 || count(array_diff($arOperationIds, $old_arOperationIds)) > 0) {
Example #3
0
        return false;
    }
    return true;
}
$arFilter = array();
if (CheckFilter($arFilterFields)) {
    $arFilter = array("ID" => $find != '' && $find_type == "id" ? $find : $find_id, "LETTER" => $find_letter, "MODULE_ID" => $find_module_id, "SYS" => $find_sys, "BINDING" => $find_binding);
}
// обработка редактирования (права доступа!)
if ($lAdmin->EditAction() && $USER->CanDoOperation('edit_tasks')) {
    foreach ($FIELDS as $ID => $arFields) {
        $ID = IntVal($ID);
        if (!$lAdmin->IsUpdated($ID)) {
            continue;
        }
        CTask::Update($ID, $arFields);
    }
}
// обработка действий групповых и одиночных
if (($arID = $lAdmin->GroupAction()) && $USER->CanDoOperation('edit_tasks')) {
    if ($_REQUEST['action_target'] == 'selected') {
        $arID = array();
        $rsData = CTask::GetList(array($by => $order), $arFilter);
        while ($arRes = $rsData->Fetch()) {
            $arID[] = $arRes['ID'];
        }
    }
    if ($_REQUEST['action'] == "delete") {
        foreach ($arID as $ID) {
            if (strlen($ID) <= 0) {
                continue;