• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/helper/workgroup/access.php
  • Класс: BitrixSocialnetworkHelperWorkgroupAccess
  • Вызов: Access::canSetScrumMaster
static function canSetScrumMaster(array $params = []): bool
{
	$groupId = (int)($params['groupId'] ?? 0);
	$userId = ($params['userId'] ?? null);
	$currentUserId = HelperUser::getCurrentUserId();

	if (
		$groupId <= 0
		|| $userId <= 0
		|| $currentUserId <= 0
	)
	{
		return false;
	}

	$group = WorkgroupTable::getList([
		'filter' => [
			'=ID' => $groupId,
		],
		'select' => [ 'ID', 'CLOSED', 'PROJECT', 'SCRUM_MASTER_ID' ],
	])->fetchObject();
	if (!$group)
	{
		return false;
	}

	$targetUserRelation = UserToGroupTable::getList([
		'filter' => [
			'=GROUP_ID' => $groupId,
			'=USER_ID' => $userId,
		],
		'select' => [ 'ID', 'ROLE', 'USER_ID', 'GROUP_ID' ],
	])->fetchObject();

	$currentUserRelation = UserToGroupTable::getList([
		'filter' => [
			'=GROUP_ID' => $groupId,
			'=USER_ID' => $currentUserId,
		],
		'select' => [ 'ID', 'ROLE', 'USER_ID', 'GROUP_ID' ],
	])->fetchObject();

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

	return $accessManager->canSetScrumMaster();
}