• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/notification/userrepository.php
  • Класс: BitrixTasksInternalsNotificationUserRepository
  • Вызов: UserRepository::getSender
public function getSender(TaskObject $task, array $optional = []): ?User
{
	if(isset($optional['AUTHOR_ID']) && (int)$optional['AUTHOR_ID'] > 0)
	{
		return $this->getUserById((int)$optional['AUTHOR_ID']);
	}

	if(BitrixTasksUtilUser::getOccurAsId() && is_int(BitrixTasksUtilUser::getOccurAsId()))
	{
		$senderId = BitrixTasksUtilUser::getOccurAsId();
		return $this->getUserById($senderId);
	}

	if(BitrixTasksUtilUser::getId() && !$this->isSpawnedByAgent($optional))
	{
		return $this->getUserById(BitrixTasksUtilUser::getId());
	}

	// try to fetch fresh data from db
	$senderIdFromDb = $task->getCreatedByMemberId();
	if ($senderIdFromDb)
	{
		return $this->getUserById($senderIdFromDb);
	}

	// by default
	return $this->getUserById($task->getCreatedBy());
}