• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/Access/Install/AccessInstaller.php
  • Класс: BitrixCatalogAccessInstallAccessInstaller
  • Вызов: AccessInstaller::fillGroupUserRoleRelations
private function fillGroupUserRoleRelations(array $groupRoleMap): void
{
	$userGroups = UserGroupTable::getList([
		'select' => ['USER_ID', 'GROUP_ID'],
		'filter' => [
			'=GROUP_ID' => array_keys($groupRoleMap),
			'=USER.ACTIVE' => 'Y',
			'=USER.IS_REAL_USER' => 'Y',
		],
	]);

	$valuesData = [];
	while ($user = $userGroups->fetch())
	{
		$groupId = (int)($groupRoleMap[$user['GROUP_ID']] ?? 0);
		if ($groupId > 0)
		{
			$valuesData[] = new SqlExpression("(?, ?)", $groupId, "U{$user['USER_ID']}");
		}
	}

	if (!$valuesData)
	{
		return;
	}

	$query = '
		INSERT INTO b_catalog_role_relation
			(ROLE_ID, RELATION)
			VALUES ' . implode(',', $valuesData) . '
	';

	Application::getConnection()->query($query);
}