• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/workgroupuserlist.php
  • Класс: BitrixSocialnetworkComponentWorkgroupUserList
  • Вызов: WorkgroupUserList::getActions
static function getActions(array $params = []): array
{
	$result = [
		self::AVAILABLE_ACTION_VIEW_PROFILE,
	];

	$groupId = (int)$params['GROUP_ID'];
	$group = $params['GROUP'];
	$currentUserRelation = $params['CURRENT_RELATION'];
	$relation = $params['RELATION'];

	$accessManager = new AccessManager(
		$group,
		$relation,
		$currentUserRelation,
	);

	if ($accessManager->canSetOwner())
	{
		$result[] = self::AVAILABLE_ACTION_SET_OWNER;
	}

	if ($accessManager->canSetScrumMaster())
	{
		$result[] = self::AVAILABLE_ACTION_SET_SCRUM_MASTER;
	}

	if ($accessManager->canSetModerator())
	{
		$result[] = self::AVAILABLE_ACTION_SET_MODERATOR;
	}
	elseif ($accessManager->canRemoveModerator())
	{
		$result[] = self::AVAILABLE_ACTION_REMOVE_MODERATOR;
	}

	$canDeleteOutgoingRequest = $accessManager->canDeleteOutgoingRequest();
	if ($accessManager->canDeleteOutgoingRequest())
	{
		$result[] = self::AVAILABLE_ACTION_DELETE_OUTGOING_REQUEST;
	}
	elseif ($accessManager->canExclude())
	{
		$result[] = self::AVAILABLE_ACTION_EXCLUDE;
	}

	if ($accessManager->canProcessIncomingRequest())
	{
		$result[] = self::AVAILABLE_ACTION_PROCESS_INCOMING_REQUEST;
	}

	if (
		$canDeleteOutgoingRequest
		&& ModuleManager::isModuleInstalled('intranet')
		&& !empty($relation->getUser()->getConfirmCode())
	)
	{
		$result[] = self::AVAILABLE_ACTION_REINVITE;
	}

	if ($accessManager->canDeleteIncomingRequest())
	{
		$result[] = self::AVAILABLE_ACTION_DELETE_INCOMING_REQUEST;
	}

	return $result;
}