• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Chat/GroupChat.php
  • Класс: BitrixImV2ChatGroupChat
  • Вызов: GroupChat::prepareParams
protected function prepareParams(array $params = []): Result
{
	$result = new Result();
	$params = $this->filterParams($params);

	if (!isset($params['AUTHOR_ID']))
	{
		$params['AUTHOR_ID'] = $this->getContext()->getUserId();
	}

	if (!isset($params['OWNER_ID']))
	{
		$params['OWNER_ID'] = $this->getContext()->getUserId();
	}

	$params['MANAGERS'] ??= [];
	$params['MANAGERS'] = array_unique(array_merge($params['MANAGERS'], [$params['AUTHOR_ID']]));

	$params['USERS'] = array_unique(array_merge($params['USERS'], $params['MANAGERS']));
	$params['USER_COUNT'] = count($params['USERS']);

	if (
		isset($params['AVATAR'])
		&& $params['AVATAR']
		&& !is_numeric((string)$params['AVATAR'])
	)
	{
		$params['AVATAR'] = CRestUtil::saveFile($params['AVATAR']);
		$imageCheck = (new BitrixMainFileImage($params['AVATAR']["tmp_name"]))->getInfo();
		if(
			!$imageCheck
			|| !$imageCheck->getWidth()
			|| $imageCheck->getWidth() > 5000
			|| !$imageCheck->getHeight()
			|| $imageCheck->getHeight() > 5000
		)
		{
			$params['AVATAR'] = null;
		}

		if (!$params['AVATAR'] || mb_strpos($params['AVATAR']['type'], "image/") !== 0)
		{
			$params['AVATAR'] = null;
		}
		else
		{
			$params['AVATAR'] = CFile::saveFile($params['AVATAR'], 'im');
		}
	}

	return $result->setResult($params);
}