Account.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Controller\Adminhtml\Configuration\Portal;
  6. use Magento\Backend\App\Action;
  7. use Magento\Backend\App\Action\Context;
  8. use Magento\Framework\App\Action\HttpGetActionInterface;
  9. use Magento\Framework\Controller\ResultInterface;
  10. use Magento\Framework\Exception\LocalizedException;
  11. use Temando\Shipping\Model\Config\PortalUrl;
  12. /**
  13. * Shipping Portal Account Redirect
  14. *
  15. * @package Temando\Shipping\Controller
  16. * @author Nathan Wilson <nathan.wilson@temando.com>
  17. * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  18. * @link https://www.temando.com/
  19. */
  20. class Account extends Action implements HttpGetActionInterface
  21. {
  22. /**
  23. * Authorization level of a basic admin session
  24. *
  25. * @see \Magento\Backend\App\Action::_isAllowed()
  26. */
  27. const ADMIN_RESOURCE = 'Temando_Shipping::portal';
  28. /**
  29. * @var PortalUrl
  30. */
  31. private $portalUrl;
  32. /**
  33. * Account constructor.
  34. *
  35. * @param Context $context
  36. * @param PortalUrl $portalUrl
  37. */
  38. public function __construct(
  39. Context $context,
  40. PortalUrl $portalUrl
  41. ) {
  42. $this->portalUrl = $portalUrl;
  43. parent::__construct($context);
  44. }
  45. /**
  46. * Redirect user to Shipping Portal account
  47. *
  48. * @return ResultInterface
  49. */
  50. public function execute()
  51. {
  52. try {
  53. $redirectUrl = $this->portalUrl->getAccountUrl();
  54. } catch (LocalizedException $exception) {
  55. $msg = 'Temando Shipping is not properly configured. Please register an account.';
  56. $this->messageManager->addWarningMessage(__($msg));
  57. $redirectUrl = $this->getUrl('adminhtml/system_config/edit', [
  58. 'section' => 'carriers',
  59. '_fragment' => 'carriers_temando-link',
  60. ]);
  61. }
  62. $redirect = $this->resultRedirectFactory->create();
  63. $redirect->setUrl($redirectUrl);
  64. return $redirect;
  65. }
  66. }