• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/item/workgroup/accessmanager.php
  • Класс: BitrixSocialnetworkItemWorkgroupAccessManager
  • Вызов: AccessManager::canJoin
public function canJoin(): bool
{
	$this->checkGroupEntityFields([
		'ID',
		'CLOSED',
		'VISIBLE',
	]);
	$this->checkRelationEntityFields($this->currentUserRelation, [
		'GROUP_ID',
		'INITIATED_BY_TYPE',
		'ROLE',
	]);

	if (
		!$this->isCurrentUserModuleAdmin
		&& !$this->group->get('VISIBLE')
	)
	{
		return false;
	}

	if (
		$this->currentUserRelation
		&& (
			$this->currentUserRelation->get('ROLE') !== UserToGroupTable::ROLE_REQUEST
			|| $this->currentUserRelation->get('INITIATED_BY_TYPE') !== UserToGroupTable::INITIATED_BY_GROUP
		)
	)
	{
		return false;
	}

	if (
		!$this->isCurrentUserModuleAdmin
		&& !$this->checkClosedGroup()
	)
	{
		return false;
	}

	return true;
}