• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/access/auth/accesseventhandler.php
  • Класс: BitrixMainAccessAuthAccessEventHandler
  • Вызов: AccessEventHandler::onBeforeIBlockSectionUpdate
static function onBeforeIBlockSectionUpdate(&$fields)
{
	if (
		!is_array($fields)
		|| !array_key_exists('IBLOCK_ID', $fields)
		|| !array_key_exists('UF_HEAD', $fields)
		|| !array_key_exists('ID', $fields)
	)
	{
		return;
	}

	$iblockId = (int) COption::GetOptionInt('intranet', 'iblock_structure');
	if (
		!$iblockId
		|| (int) $fields['IBLOCK_ID'] !== $iblockId
	)
	{
		return;
	}

	$ufHead = (int) $fields['UF_HEAD'];
	if ($ufHead > 0)
	{
		(new AccessAuthProvider())->DeleteByUser($ufHead);
	}

	$accessCode = AccessCode::ACCESS_DIRECTOR . $fields['ID'];
	self::deleteByAccessCode($accessCode);
}