• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskitem.php
  • Класс: CTaskItem
  • Вызов: CTaskItem::getAllowedActionsArrayInternal
static function getAllowedActionsArrayInternal($executiveUserId, array $arTaskData, $bmUserRoles = null)
{
	$taskId = (int) $arTaskData['ID'];
	if (
		!isset(self::$allowedActions[$taskId])
		|| !is_array(self::$allowedActions[$taskId])
		|| !array_key_exists($executiveUserId, self::$allowedActions[$taskId])
	)
	{
		$actionMap = ActionDictionary::getLegacyActionMap();
		$request = [];
		foreach ($actionMap as $legacyId => $action)
		{
			$request[$action] = [];
		}

		$taskModel = BitrixTasksAccessModelTaskModel::createFromId($taskId);
		try
		{
			$rights = self::getAccessController((int) $executiveUserId)->batchCheck($request, $taskModel);
		}
		catch (BitrixMainAccessExceptionAccessException $e)
		{
			return [];
		}

		self::$allowedActions[$taskId][$executiveUserId] = [];
		foreach ($actionMap as $legacyId => $action)
		{
			if (array_key_exists($action, $rights) && $rights[$action])
			{
				self::$allowedActions[$taskId][$executiveUserId][] = $legacyId;
			}
		}
	}

	return self::$allowedActions[$taskId][$executiveUserId];
}