• Модуль: xdimport
  • Путь к файлу: ~/bitrix/modules/xdimport/classes/general/lf_scheme_rights.php
  • Класс: CXDILFSchemeRights
  • Вызов: CXDILFSchemeRights::Set
function Set($schemeId, $arRights = [], $arEUV = [])
{
	if ((int)$schemeId <= 0)
	{
		return false;
	}

	if (!is_array($arRights))
	{
		return false;
	}

	if (
		!is_array($arEUV)
		|| !array_key_exists('ENTITY_TYPE', $arEUV)
		|| !array_key_exists('EVENT_ID', $arEUV)
	)
	{
		return false;
	}

	if (
		!array_key_exists('ENTITY_ID', $arEUV)
		|| (int)$arEUV['ENTITY_ID'] <= 0
	)
	{
		$arEUV['ENTITY_ID'] = 0;
	}

	self::DeleteBySchemeID($schemeId);

	$obXDIUser = new CXDIUser();

	foreach ($arRights as $prefix => $arRightsTmp)
	{
		if (in_array($prefix, [ 'UA', 'UN' ]))
		{
			$this->Add(
				[
					'SCHEME_ID' => $schemeId,
					'GROUP_CODE' => $prefix
				]
			);
		}
		else
		{
			if (!is_array($arRightsTmp))
			{
				continue;
			}

			foreach ($arRightsTmp as $user_id_tmp)
			{
				if ((int)$user_id_tmp > 0)
				{
					$obXDIUser->Add(
						[
							'USER_ID' => $user_id_tmp,
							'GROUP_CODE' => $prefix . $user_id_tmp
						]
					);
					
					$this->Add(
						[
							'SCHEME_ID' => $schemeId,
							'GROUP_CODE' => $prefix . $user_id_tmp
						]
					);
				}
			}
		}
	}

	return true;
}