• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/Access/Service/RolePermissionService.php
  • Класс: BitrixCatalogAccessServiceRolePermissionService
  • Вызов: RolePermissionService::saveRole
public function saveRole(string $name, int $roleId = null): int
{
	$nameField = [
		"NAME" => Encoding::convertEncodingToCurrent($name),
	];

	try
	{
		if(!$roleId)
		{
			if(!
				(
					$role = RoleTable::getList(
					['filter' => [
						'=NAME' => $nameField['NAME'],
					]])->fetchObject()
				)
			)
			{
				$role = RoleTable::add($nameField);
			}
		}
		else
		{
			$role = RoleTable::update($roleId, $nameField);
		}
	} catch (Exception $e)
	{
		throw new SqlQueryException(self::DB_ERROR_KEY);
	}

	return $role->getId();
}