InvalidateToken.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\User\Controller\Adminhtml\User;
  8. use Magento\Integration\Api\AdminTokenServiceInterface;
  9. /**
  10. * Class InvalidateToken - used to invalidate/revoke all authentication tokens for a specific user.
  11. */
  12. class InvalidateToken extends \Magento\User\Controller\Adminhtml\User
  13. {
  14. /**
  15. * @var AdminTokenServiceInterface
  16. */
  17. protected $tokenService;
  18. /**
  19. * Inject dependencies.
  20. *
  21. * @param \Magento\Backend\App\Action\Context $context
  22. * @param \Magento\Framework\Registry $coreRegistry
  23. * @param \Magento\User\Model\UserFactory $userFactory
  24. * @param AdminTokenServiceInterface $tokenService
  25. */
  26. public function __construct(
  27. \Magento\Backend\App\Action\Context $context,
  28. \Magento\Framework\Registry $coreRegistry,
  29. \Magento\User\Model\UserFactory $userFactory,
  30. AdminTokenServiceInterface $tokenService
  31. ) {
  32. parent::__construct($context, $coreRegistry, $userFactory);
  33. $this->tokenService = $tokenService;
  34. }
  35. /**
  36. * @return void
  37. */
  38. public function execute()
  39. {
  40. if ($userId = $this->getRequest()->getParam('user_id')) {
  41. try {
  42. $this->tokenService->revokeAdminAccessToken($userId);
  43. $this->messageManager->addSuccess(__('You have revoked the user\'s tokens.'));
  44. $this->_redirect('adminhtml/*/edit', ['user_id' => $userId]);
  45. return;
  46. } catch (\Exception $e) {
  47. $this->messageManager->addError($e->getMessage());
  48. $this->_redirect('adminhtml/*/edit', ['user_id' => $userId]);
  49. return;
  50. }
  51. }
  52. $this->messageManager->addError(__('We can\'t find a user to revoke.'));
  53. $this->_redirect('adminhtml/*');
  54. }
  55. }