• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/workgroup.php
  • Класс: BitrixSocialnetworkControllerWorkgroup
  • Вызов: Workgroup::updateAction
public function updateAction(int $groupId, array $fields = []): ?bool
{
	if (!HelperWorkgroupAccess::canModify([
		'groupId' => $groupId,
		'checkAdminSession' => ($this->getScope() !== Controller::SCOPE_REST),
	]))
	{
		$this->addError(new Error(
			Loc::getMessage('SONET_CONTROLLER_WORKGROUP_EMPTY'),
			'SONET_CONTROLLER_WORKGROUP_EMPTY')
		);
		return null;
	}

	$whiteList = [
		'KEYWORDS',
	];

	foreach ($fields as $key => $value)
	{
		if (!in_array($key, $whiteList, true))
		{
			unset($fields[$key]);
		}
	}

	if (
		empty($fields)
	)
	{
		$this->addError(new Error(
			Loc::getMessage('SONET_CONTROLLER_WORKGROUP_ACTION_FAILED'),
			'SONET_CONTROLLER_WORKGROUP_ACTION_FAILED')
		);
		return null;
	}

	try
	{
		$result = CSocNetGroup::update($groupId, $fields);
	}
	catch (Exception $e)
	{
		$this->addError(new Error($e->getMessage(), $e->getCode()));
		return null;
	}

	if (!$result)
	{
		$this->addError(new Error(
			Loc::getMessage('SONET_CONTROLLER_WORKGROUP_ACTION_FAILED'),
			'SONET_CONTROLLER_WORKGROUP_ACTION_FAILED')
		);
		return null;
	}

	return true;
}