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