12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * Action validator, remove action
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Model\ActionValidator;
- use Magento\Framework\Model\AbstractModel;
- /**
- * @api
- * @since 100.0.2
- */
- class RemoveAction
- {
- /**
- * @var \Magento\Framework\Registry
- */
- protected $registry;
- /**
- * @var array
- */
- protected $protectedModels;
- /**
- * @param \Magento\Framework\Registry $registry
- * @param array $protectedModels
- */
- public function __construct(\Magento\Framework\Registry $registry, array $protectedModels = [])
- {
- $this->registry = $registry;
- $this->protectedModels = $protectedModels;
- }
- /**
- * Safeguard function that checks if item can be removed
- *
- * @param \Magento\Framework\Model\AbstractModel $model
- * @return bool
- */
- public function isAllowed(AbstractModel $model)
- {
- $isAllowed = true;
- if ($this->registry->registry('isSecureArea')) {
- $isAllowed = true;
- } elseif (in_array($this->getBaseClassName($model), $this->protectedModels)) {
- $isAllowed = false;
- }
- return $isAllowed;
- }
- /**
- * Get clean model name without Interceptor and Proxy part and slashes
- * @param object $object
- * @return mixed
- */
- protected function getBaseClassName($object)
- {
- $className = ltrim(get_class($object), "\\");
- $className = str_replace(['\Interceptor', '\Proxy'], [''], $className);
- return $className;
- }
- }
|