- Модуль: 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;
}