• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/Access/Install/AccessInstaller.php
  • Класс: BitrixCatalogAccessInstallAccessInstaller
  • Вызов: AccessInstaller::fillGroupPermissions
private function fillGroupPermissions(array $groups): array
{
	$query = [];
	$result = [];
	foreach ($groups as $groupId => $groupData)
	{
		if (!is_array($groupData['PERMISSIONS']) || !$groupData['PERMISSIONS'])
		{
			continue;
		}

		$role = RoleTable::add([
			'NAME' => $groupData['NAME']
		]);

		if (!$role->isSuccess())
		{
			continue;
		}

		$roleId = $role->getId();
		foreach ($groupData['PERMISSIONS'] as $permissionId)
		{
			if ($permissionId === PermissionDictionary::CATALOG_PRODUCT_EDIT_ENTITY_PRICE && Option::get('crm', 'enable_product_price_edit') !== 'Y')
			{
				continue;
			}

			$value = PermissionDictionary::getDefaultPermissionValue($permissionId);
			$query[] = "('{$roleId}', '{$permissionId}', '{$value}')";
		}

		$result[$groupId] = $roleId;
	}

	if (!empty($query))
	{
		RoleUtil::insertPermissions($query);
	}

	return $result;
}