9namespace Bitrix\Main\Access;
11use Bitrix\Main\Access\Event\Event;
12use Bitrix\Main\Access\Event\EventDictionary;
13use Bitrix\Main\Access\Exception\UnknownActionException;
14use Bitrix\Main\Access\Filter\Factory\FilterControllerFactory;
15use Bitrix\Main\Access\Filter\FilterFactory;
16use Bitrix\Main\Access\Rule\Factory\RuleControllerFactory;
17use Bitrix\Main\Access\Rule\RuleFactory;
18use Bitrix\Main\Access\User\AccessibleUser;
39 if (!isset(static::$register[static::class][
$userId]))
43 return static::$register[static::class][
$userId];
49 $itemId = (int) $itemId;
51 $controller = static::getInstance(
$userId);
57 $this->user = $this->
loadUser($userId);
75 $rule = $this->ruleFactory->createFromAction(
$action, $this);
82 $isAccess =
$event->isAccess();
84 if (!is_null($isAccess))
89 $isAccess = $rule->execute($item,
$params);
93 $isAccess =
$event->isAccess() ?? $isAccess;
130 $action = array_map(
function($el) {
131 return ucfirst(strtolower($el));
141 $class = new \ReflectionClass($this);
142 $namespace = $class->getNamespaceName();
143 return $namespace.
'\\'.static::RULE_SUFFIX.
'\\';
152 'user' => $this->user,
156 'isAccess' => $isAccess
if(!Loader::includeModule('catalog')) if(!AccessController::getCurrent() ->check(ActionDictionary::ACTION_PRICE_EDIT)) if(!check_bitrix_sessid()) $request
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
getEntityFilter(string $action, string $entityName, $params=null)
batchCheck(array $request, AccessibleItem $item)
loadItem(int $itemId=null)
static can($userId, string $action, $itemId=null, $params=null)
checkByItemId(string $action, int $itemId=null, $params=null)
sendEvent(string $eventName, string $action, AccessibleItem $item=null, $params=null, bool $isAccess=null)
getRuleName(string $action)
static getInstance($userId)
check(string $action, AccessibleItem $item=null, $params=null)
FilterFactory $filterFactory
const EVENT_ON_AFTER_CHECK
const EVENT_ON_BEFORE_CHECK
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']