- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/classes/general/authproviders.php
- Класс: CIntranetAuthProvider
- Вызов: CIntranetAuthProvider::OnBeforeIBlockSectionUpdate
static function OnBeforeIBlockSectionUpdate($arFields)
{
if(COption::GetOptionString('intranet', 'iblock_structure', '') == $arFields['IBLOCK_ID'])
{
if(isset($arFields["IBLOCK_SECTION_ID"]) || isset($arFields["ACTIVE"]) || isset($arFields["UF_HEAD"]))
{
$res = CIBlockSection::GetList(
array(),
array('IBLOCK_ID' => $arFields['IBLOCK_ID'], 'ID' => $arFields['ID']),
false,
array('IBLOCK_SECTION_ID', 'ACTIVE', 'UF_HEAD')
);
if($arSect = $res->Fetch())
{
if(
isset($arFields["IBLOCK_SECTION_ID"]) && $arSect["IBLOCK_SECTION_ID"] <> intval($arFields["IBLOCK_SECTION_ID"])
|| isset($arFields["ACTIVE"]) && $arSect["ACTIVE"] <> $arFields["ACTIVE"]
)
{
//departments structure's been changed
CAccess::RecalculateForProvider(self::ID);
}
elseif(isset($arFields["UF_HEAD"]) && $arSect["UF_HEAD"] <> intval($arFields["UF_HEAD"]))
{
//department boss has been changed
CAccess::RecalculateForUser($arFields["UF_HEAD"], self::ID);
CAccess::RecalculateForUser($arSect["UF_HEAD"], self::ID);
}
}
}
}
return true;
}