• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/internals/landing.php
  • Класс: BitrixLandingInternalsLandingTable
  • Вызов: LandingTable::OnBeforeDelete
static function OnBeforeDelete(EntityEvent $event)
{
	$result = new EntityEventResult();
	$primary = $event->getParameter('primary');
	if ($primary)
	{
		$res = self::getList([
			'select' => [
				'SITE_ID'
			],
			'filter' => [
				'ID' => $primary['ID'],
				'CHECK_PERMISSIONS' => 'N',
				'=SITE.DELETED' => ['Y', 'N'],
				'=DELETED' => ['Y', 'N']
			]
 			]);
		if ($site = $res->fetch())
		{
			// check delete access
			$hasAccess = Rights::hasAccessForSite(
				$site['SITE_ID'],
				Rights::ACCESS_TYPES['delete']
			);
			if (!$hasAccess)
			{
				$result->setErrors(array(
					new EntityEntityError(
						Loc::getMessage('LANDING_TABLE_ERROR_LD_ACCESS_DENIED_DELETED'),
						'ACCESS_DENIED'
					)
				));
				return $result;
			}
		}
		// check lock status
		if (BitrixLandingLock::isLandingDeleteLocked($primary['ID']))
		{
			$result->setErrors(array(
				new EntityEntityError(
					Loc::getMessage('LANDING_TABLE_ERROR_LD_IS_LOCK'),
					'LANDING_IS_LOCK'
				)
			));
			return $result;
		}
	}
	return $result;
}