Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/catalog/lib/Access/Rule/ |
Upload File : |
<?php namespace Bitrix\Catalog\Access\Rule; use Bitrix\Catalog\Config\Feature; use Bitrix\Main\Access\AccessibleItem; use Bitrix\Main\Access\Rule\AbstractRule; use Bitrix\Catalog\Access\ActionDictionary; use Bitrix\Catalog\Access\AccessController; use Bitrix\Catalog\Access\Model\UserModel; class BaseRule extends AbstractRule { /* @var AccessController $controller */ /* @var UserModel $user */ /** * check access permission * @param AccessibleItem|null $item * @param null $params * * @return bool */ public function execute(AccessibleItem $item = null, $params = null): bool { if ($this->controller->isAdmin()) { return true; } if (!Feature::isAccessControllerCheckingEnabled()) { $userDepartments = $this->user->getUserDepartments(); if (empty($userDepartments)) { return false; } return count($userDepartments) > 1 || $userDepartments[0] !== 0; } if (!$params) { return false; } $params['item'] = $item; return $this->check($params); } public function getPermissionValue($params): ?int { if (!Feature::isAccessControllerCheckingEnabled()) { return 1; } $permissionCode = static::getPermissionCode($params); if (!$permissionCode) { return null; } return $this->user->getPermission($permissionCode); } /** * */ protected function check($params): bool { return (bool)$this->getPermissionValue($params); } /** * @param array $params * @return string | null */ protected static function getPermissionCode(array $params): ?string { $permissionCode = ActionDictionary::getActionPermissionMap()[$params['action']]; if (!$permissionCode) { return null; } return (string)$permissionCode; } }