- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/access/accesscontroller.php
- Класс: Bitrix\Sender\Access\AccessController
- Вызов: AccessController::check
public function check(string $action, AccessibleItem $item = null, $params = null): bool
{
$ruleName = $this->getRuleName($action);
if (!$ruleName || !class_exists($ruleName))
{
throw new UnknownActionException($action);
}
$event = $this->sendEvent(EventDictionary::EVENT_ON_BEFORE_CHECK, $action, null, $params);
$isAccess = $event->isAccess();
if (!is_null($isAccess))
{
return $isAccess;
}
$params['action'] = $action;
$isAccess = (new $ruleName($this))->execute(null, $params);
if($isAccess)
{
return $isAccess;
}
$event = $this->sendEvent(EventDictionary::EVENT_ON_AFTER_CHECK, $action,null, $params, $isAccess);
$isAccess = $event->isAccess() ?? $isAccess;
return $isAccess;
}