Ajaxvalidation.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Connector;
  3. class Ajaxvalidation extends \Magento\Backend\App\Action
  4. {
  5. /**
  6. * Authorization level of a basic admin session
  7. *
  8. * @see _isAllowed()
  9. */
  10. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::config';
  11. /**
  12. * @var \Dotdigitalgroup\Email\Helper\Data
  13. */
  14. private $data;
  15. /**
  16. * @var \Magento\Framework\Json\Helper\Data
  17. */
  18. private $jsonHelper;
  19. /**
  20. * Ajaxvalidation constructor.
  21. *
  22. * @param \Dotdigitalgroup\Email\Helper\Data $data
  23. * @param \Magento\Framework\Json\Helper\Data $jsonHelper
  24. * @param \Magento\Backend\App\Action\Context $context
  25. */
  26. public function __construct(
  27. \Dotdigitalgroup\Email\Helper\Data $data,
  28. \Magento\Framework\Json\Helper\Data $jsonHelper,
  29. \Magento\Backend\App\Action\Context $context
  30. ) {
  31. $this->data = $data;
  32. $this->jsonHelper = $jsonHelper;
  33. parent::__construct($context);
  34. }
  35. /**
  36. * Validate api user.
  37. *
  38. * @return void
  39. */
  40. public function execute()
  41. {
  42. $params = $this->getRequest()->getParams();
  43. $apiUsername = $params['api_username'];
  44. $apiPassword = base64_decode($params['api_password']);
  45. //validate api, check against account info.
  46. if ($this->data->isEnabled()) {
  47. $client = $this->data->getWebsiteApiClient();
  48. $result = $client->validate($apiUsername, $apiPassword);
  49. $resonseData['success'] = true;
  50. //validation failed
  51. if (!$result) {
  52. $resonseData['success'] = false;
  53. $resonseData['message'] = 'Authorization has been denied for this request.';
  54. }
  55. $this->getResponse()->representJson($this->jsonHelper->jsonEncode($resonseData));
  56. }
  57. }
  58. }