- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/checklist/task/taskchecklistfacade.php
- Класс: BitrixTasksCheckListTaskTaskCheckListFacade
- Вызов: TaskCheckListFacade::fillItemAccessActions
static function fillItemAccessActions($taskId, $checkList, $userId): void
{
$actions = array_keys(self::ACTIONS['ITEM']);
$task = CTaskItem::getInstanceFromPool($taskId, $userId);
$checkListId = $checkList->getFields()['ID'];
if ($task->checkAccess(ActionDictionary::ACTION_TASK_EDIT))
{
static::$itemAccessActions[$taskId][$userId][$checkListId] = array_fill_keys($actions, true);
return;
}
$isCreator = ($userId === $checkList->getFields()['CREATED_BY']);
$isExecutant = $task->checkAccess(ActionDictionary::ACTION_TASK_EDIT);
if (!$task->checkCanRead())
{
static::$itemAccessActions[$taskId][$userId][$checkListId] = array_fill_keys($actions, false);
return;
}
static::$itemAccessActions[$taskId][$userId][$checkListId] = [
self::ACTION_MODIFY => ($isExecutant && $isCreator),
self::ACTION_REMOVE => ($isExecutant && $isCreator),
self::ACTION_TOGGLE => $isExecutant,
];
}