• Модуль: 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,
	];
}