Автоматическое подтверждение вступления в группу

Автоматическое подтверждение вступления в группу

1028
04.09.2015

Встала передом мной задача: нужно, чтобы пользователь при переходе по ссылке из письма с приглашением вступить в группу, автоматически подтверждал вступление. 

Встала передом мной задача: нужно, чтобы пользователь при переходе по ссылке из письма с приглашением вступить в группу, автоматически подтверждал вступление. Самое большое значение такой функционал имеет для скрытых закрытых групп, т.к. при переходе просто по ссылке такой группы пользователь видит ошибку доступа.

Для реализации механизма подтверждения в ядре модуля социальной сети имеется функция "UserConfirmRequestToBeMember".

Реализация:

В шаблон почтового письма с приглашением добавляем какой-то параметр, который будет говорить о том, что нужно проверять, добавлять ли текущего пользователя в группу, или нет.

Дальше, перед подключением компонента с выводом информации о группе прописываем проверку на наличие нужного компонента в адресной строке и в случае наличия параметра пишем код:

$dbRequests = CSocNetUserToGroup::GetList(
		array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"),
		array(
			"GROUP_ID" => intval($arResult["VARIABLES"]["group_id"]),
			"USER_ID" => intval($GLOBALS["USER"]->GetID()),
			'ROLE'=>SONET_ROLES_REQUEST,
			"!INITIATED_BY_USER_ID"=>intval($GLOBALS["USER"]->GetID())
		),
		false,
		$arNavParams,
		array("ID", "USER_ID", "ROLE")
	);
	if ($arRequests = $dbRequests->GetNext())
	{
		$bAutoSubscribe = (array_key_exists("USE_AUTOSUBSCRIBE", $arParams) && $arParams["USE_AUTOSUBSCRIBE"] == "N" ? false : true);
		CSocNetUserToGroup::UserConfirmRequestToBeMember($GLOBALS["USER"]->GetID(),IntVal($arRequests['ID']), $bAutoSubscribe);
	}

Для начала получаем значение кода связи между группой и пользователем, а затем уже, в случае, если запрос для данного пользователя есть, подтверждаем вступление в группу.



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку