Skip to content

Bulk ACL management for AsynchronousOperations Admin UI #27580

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 9 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,26 @@
*/
namespace Magento\AsynchronousOperations\Controller\Adminhtml\Bulk;

use Magento\AsynchronousOperations\Model\AccessManager;
use Magento\Framework\View\Result\PageFactory;
use Magento\Backend\App\Action\Context;
use Magento\Backend\App\Action;
use Magento\Framework\App\Action\HttpGetActionInterface;

/**
* Class View Operation Details Controller
*/
class Details extends \Magento\Backend\App\Action implements \Magento\Framework\App\Action\HttpGetActionInterface
class Details extends Action implements HttpGetActionInterface
{
/**
* @var \Magento\Framework\View\Result\PageFactory
* @var PageFactory
*/
private $resultPageFactory;

/**
* @var \Magento\AsynchronousOperations\Model\AccessValidator
* @var AccessManager
*/
private $accessValidator;
private $accessManager;

/**
* @var string
Expand All @@ -27,19 +33,20 @@ class Details extends \Magento\Backend\App\Action implements \Magento\Framework\

/**
* Details constructor.
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
* @param \Magento\AsynchronousOperations\Model\AccessValidator $accessValidator
*
* @param Context $context
* @param PageFactory $resultPageFactory
* @param AccessManager $accessManager
* @param string $menuId
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
\Magento\AsynchronousOperations\Model\AccessValidator $accessValidator,
Context $context,
PageFactory $resultPageFactory,
AccessManager $accessManager,
$menuId = 'Magento_AsynchronousOperations::system_magento_logging_bulk_operations'
) {
$this->resultPageFactory = $resultPageFactory;
$this->accessValidator = $accessValidator;
$this->accessManager = $accessManager;
$this->menuId = $menuId;
parent::__construct($context);
}
Expand All @@ -49,10 +56,9 @@ public function __construct(
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('Magento_Logging::system_magento_logging_bulk_operations')
&& $this->accessValidator->isAllowed($this->getRequest()->getParam('uuid'));
return $this->accessManager->isAllowedForBulkUuid($this->getRequest()->getParam('uuid'));
}

/**
* Bulk details action
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@
use Magento\Backend\App\Action\Context;
use Magento\Backend\Model\View\Result\Redirect;
use Magento\Backend\App\Action;
use Magento\AsynchronousOperations\Model\AccessValidator;
use Magento\AsynchronousOperations\Model\AccessManager;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\App\Action\HttpPostActionInterface;

/**
* Class Bulk Retry Controller
*/
class Retry extends Action
class Retry extends Action implements HttpPostActionInterface
{
/**
* @var BulkManagement
Expand All @@ -29,40 +30,40 @@ class Retry extends Action
private $notificationManagement;

/**
* @var \Magento\AsynchronousOperations\Model\AccessValidator
* @var AccessManager
*/
private $accessValidator;
private $accessManager;

/**
* Retry constructor.
*
* @param Context $context
* @param BulkManagement $bulkManagement
* @param BulkNotificationManagement $notificationManagement
* @param AccessValidator $accessValidator
* @param AccessManager $accessManager
*/
public function __construct(
Context $context,
BulkManagement $bulkManagement,
BulkNotificationManagement $notificationManagement,
AccessValidator $accessValidator
AccessManager $accessManager
) {
parent::__construct($context);
$this->bulkManagement = $bulkManagement;
$this->notificationManagement = $notificationManagement;
$this->accessValidator = $accessValidator;
$this->accessManager = $accessManager;
}

/**
* @inheritDoc
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('Magento_Logging::system_magento_logging_bulk_operations')
&& $this->accessValidator->isAllowed($this->getRequest()->getParam('uuid'));
return $this->accessManager->isAllowedForBulkUuid($this->getRequest()->getParam('uuid'));
}

/**
* {@inheritdoc}
* @inheritdoc
*/
public function execute()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,40 @@

namespace Magento\AsynchronousOperations\Controller\Adminhtml\Index;

class Index extends \Magento\Backend\App\Action
use Magento\Backend\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\View\Result\Page;
use Magento\AsynchronousOperations\Model\AccessManager;
use Magento\Backend\App\Action;
use Magento\Framework\App\Action\HttpGetActionInterface;

class Index extends Action implements HttpGetActionInterface
{
/**
* Authorization level of a basic admin session
*
* @see _isAllowed()
*/
const ADMIN_RESOURCE = 'Magento_Logging::system_magento_logging_bulk_operations';
public const BULK_OPERATIONS_MENU_ID = "Magento_AsynchronousOperations::system_magento_logging_bulk_operations";

/**
* @var \Magento\Framework\View\Result\PageFactory
* @var PageFactory
*/
private $resultPageFactory;

/**
* @var string
* @var AccessManager
*/
private $menuId;
private $accessManager;

/**
* Details constructor.
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
* @param string $menuId
* @param Context $context
* @param PageFactory $resultPageFactory
* @param AccessManager $accessManager
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $resultPageFactory,
$menuId = 'Magento_AsynchronousOperations::system_magento_logging_bulk_operations'
Context $context,
PageFactory $resultPageFactory,
AccessManager $accessManager
) {
$this->resultPageFactory = $resultPageFactory;
$this->menuId = $menuId;
$this->accessManager = $accessManager;
parent::__construct($context);
}

Expand All @@ -46,19 +48,19 @@ public function __construct(
*/
protected function _isAllowed()
{
return parent::_isAllowed();
return $this->accessManager->isOwnActionsAllowed();
}

/**
* Bulk list action
*
* @return \Magento\Framework\View\Result\Page
* @return Page
*/
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$resultPage->initLayout();
$this->_setActiveMenu($this->menuId);
$this->_setActiveMenu(self::BULK_OPERATIONS_MENU_ID);
$resultPage->getConfig()->getTitle()->prepend(__('Bulk Actions Log'));
return $resultPage;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,51 @@
use Magento\Backend\App\Action\Context;
use Magento\Backend\App\Action;
use Magento\Framework\Controller\ResultFactory;
use Magento\AsynchronousOperations\Model\AccessManager;
use Magento\Framework\App\Action\HttpGetActionInterface;

/**
* Class Bulk Notification Dismiss Controller
*/
class Dismiss extends Action
class Dismiss extends Action implements HttpGetActionInterface
{
/**
* @var BulkNotificationManagement
*/
private $notificationManagement;

/**
* @var AccessManager
*/
private $accessManager;

/**
* Class constructor.
*
* @param Context $context
* @param BulkNotificationManagement $notificationManagement
* @param AccessManager $accessManager
*/
public function __construct(
Context $context,
BulkNotificationManagement $notificationManagement
BulkNotificationManagement $notificationManagement,
AccessManager $accessManager
) {
parent::__construct($context);
$this->notificationManagement = $notificationManagement;
$this->accessManager = $accessManager;
}

/**
* @inheritDoc
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('Magento_Logging::system_magento_logging_bulk_operations');
return $this->accessManager->isOwnActionsAllowed();
}

/**
* {@inheritdoc}
* @inheritdoc
*/
public function execute()
{
Expand Down
Loading