Delete.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Rules;
  3. class Delete extends \Magento\Backend\App\AbstractAction
  4. {
  5. /**
  6. * Authorization level of a basic admin session
  7. *
  8. * @see _isAllowed()
  9. */
  10. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::exclusion_rules';
  11. /**
  12. * @var \Dotdigitalgroup\Email\Model\Rules
  13. */
  14. private $rules;
  15. /**
  16. * @var \Magento\Store\Model\StoreManagerInterface
  17. */
  18. private $storeManager;
  19. /**
  20. * @var \Magento\Framework\Escaper
  21. */
  22. private $escaper;
  23. /**
  24. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Rules
  25. */
  26. private $rulesResource;
  27. /**
  28. * Delete constructor.
  29. *
  30. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Rules $rulesResource
  31. * @param \Magento\Backend\App\Action\Context $context
  32. * @param \Magento\Store\Model\StoreManagerInterface $storeManagerInterface
  33. * @param \Dotdigitalgroup\Email\Model\Rules $rules
  34. * @param \Magento\Framework\Escaper $escaper
  35. */
  36. public function __construct(
  37. \Dotdigitalgroup\Email\Model\ResourceModel\Rules $rulesResource,
  38. \Magento\Backend\App\Action\Context $context,
  39. \Magento\Store\Model\StoreManagerInterface $storeManagerInterface,
  40. \Dotdigitalgroup\Email\Model\Rules $rules,
  41. \Magento\Framework\Escaper $escaper
  42. ) {
  43. parent::__construct($context);
  44. $this->rules = $rules;
  45. $this->storeManager = $storeManagerInterface;
  46. $this->escaper = $escaper;
  47. $this->rulesResource = $rulesResource;
  48. }
  49. /**
  50. * Execute method.
  51. *
  52. * @return null
  53. */
  54. public function execute()
  55. {
  56. $id = $this->getRequest()->getParam('id');
  57. if ($id) {
  58. try {
  59. $model = $this->rules;
  60. $model->setId($id);
  61. $this->rulesResource->delete($model);
  62. $this->messageManager->addSuccessMessage(
  63. __('The rule has been deleted.')
  64. );
  65. $this->_redirect('*/*/');
  66. return;
  67. } catch (\Exception $e) {
  68. $this->messageManager->addErrorMessage(
  69. __('An error occurred while deleting the rule. Please review the log and try again.')
  70. );
  71. $this->_redirect(
  72. '*/*/edit',
  73. ['id' => $id]
  74. );
  75. return;
  76. }
  77. }
  78. $this->messageManager->addErrorMessage(
  79. __('Unable to find a rule to delete.')
  80. );
  81. $this->_redirect('*/*/');
  82. }
  83. }