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