Save.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key;
  8. /**
  9. * Encryption Key Save Controller
  10. */
  11. class Save extends \Magento\EncryptionKey\Controller\Adminhtml\Crypt\Key
  12. {
  13. /**
  14. * @var \Magento\Framework\Encryption\EncryptorInterface
  15. */
  16. protected $encryptor;
  17. /**
  18. * @var \Magento\EncryptionKey\Model\ResourceModel\Key\Change
  19. */
  20. protected $change;
  21. /**
  22. * @var \Magento\Framework\App\CacheInterface
  23. */
  24. protected $cache;
  25. /**
  26. * @param \Magento\Backend\App\Action\Context $context
  27. * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
  28. * @param \Magento\EncryptionKey\Model\ResourceModel\Key\Change $change
  29. * @param \Magento\Framework\App\CacheInterface $cache
  30. */
  31. public function __construct(
  32. \Magento\Backend\App\Action\Context $context,
  33. \Magento\Framework\Encryption\EncryptorInterface $encryptor,
  34. \Magento\EncryptionKey\Model\ResourceModel\Key\Change $change,
  35. \Magento\Framework\App\CacheInterface $cache
  36. ) {
  37. $this->encryptor = $encryptor;
  38. $this->change = $change;
  39. $this->cache = $cache;
  40. parent::__construct($context);
  41. }
  42. /**
  43. * Process saving new encryption key
  44. *
  45. * @return void
  46. */
  47. public function execute()
  48. {
  49. try {
  50. $key = null;
  51. if (0 == $this->getRequest()->getPost('generate_random')) {
  52. $key = $this->getRequest()->getPost('crypt_key');
  53. if (empty($key)) {
  54. throw new \Exception(__('Please enter an encryption key.'));
  55. }
  56. $this->encryptor->validateKey($key);
  57. }
  58. $newKey = $this->change->changeEncryptionKey($key);
  59. $this->messageManager->addSuccessMessage(__('The encryption key has been changed.'));
  60. if (!$key) {
  61. $this->messageManager->addNoticeMessage(
  62. __(
  63. 'This is your new encryption key: %1. ' .
  64. 'Be sure to write it down and take good care of it!',
  65. $newKey
  66. )
  67. );
  68. }
  69. $this->cache->clean();
  70. } catch (\Exception $e) {
  71. $this->messageManager->addErrorMessage($e->getMessage());
  72. $this->_session->setFormData(['crypt_key' => $key]);
  73. }
  74. $this->_redirect('adminhtml/*/');
  75. }
  76. }