• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/controller/usertogroup.php
  • Класс: BitrixSocialnetworkControllerUserToGroup
  • Вызов: UserToGroup::joinAction
public function joinAction(array $params = [])
{
	$userId = (int)(isset($params['userId']) && (int)$params['userId'] > 0 ? $params['userId'] : $this->getCurrentUser()->getId());
	$groupId = (int)(isset($params['groupId']) && (int)$params['groupId'] > 0 ? $params['groupId'] : 0);

	if ($userId <= 0)
	{
		$this->addError(new Error('No User Id', 'SONET_CONTROLLER_USERTOGROUP_NO_USER_ID'));
		return null;
	}

	if ($groupId <= 0)
	{
		$this->addError(new Error('No Workgroup', 'SONET_CONTROLLER_USERTOGROUP_NO_GROUP'));
		return null;
	}

	if (!Loader::includeModule('socialnetwork'))
	{
		$this->addError(new Error('Cannot include Socialnetwork module', 'SONET_CONTROLLER_USERTOGROUP_NO_SOCIALNETWORK_MODULE'));
		return null;
	}

	if (
		!CSocNetUser::isCurrentUserModuleAdmin(SITE_ID, false)
		&& $userId !== (int)$this->getCurrentUser()->getId()
	)
	{
		$this->addError(new Error('No permissions', 'SONET_CONTROLLER_USERTOGROUP_NO_PERMISSIONS'));
		return null;
	}

	try
	{
		$confirmationNeeded = HelperWorkgroup::join([
			'groupId' => $groupId,
		]);
	}
	catch (Exception $e)
	{
		$this->addError(new Error($e->getMessage(), $e->getCode()));
		return null;
	}

	return [
		'success' => true,
		'confirmationNeeded' => $confirmationNeeded,
	];
}