AdminUser.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Integration\Plugin\Model;
  7. use Magento\Integration\Model\AdminTokenService;
  8. /**
  9. * Plugin to delete admin tokens when admin becomes inactive
  10. */
  11. class AdminUser
  12. {
  13. /**
  14. * @var AdminTokenService
  15. */
  16. private $adminTokenService;
  17. /**
  18. * @param AdminTokenService $adminTokenService
  19. */
  20. public function __construct(
  21. AdminTokenService $adminTokenService
  22. ) {
  23. $this->adminTokenService = $adminTokenService;
  24. }
  25. /**
  26. * Check if admin is inactive - if so, invalidate their tokens
  27. *
  28. * @param \Magento\User\Model\User $subject
  29. * @param \Magento\Framework\DataObject $object
  30. * @return \Magento\User\Model\User
  31. * @throws \Magento\Framework\Exception\LocalizedException
  32. */
  33. public function afterSave(
  34. \Magento\User\Model\User $subject,
  35. \Magento\Framework\DataObject $object
  36. ): \Magento\User\Model\User {
  37. $isActive = $object->getIsActive();
  38. if ($isActive !== null && $isActive == 0) {
  39. $this->adminTokenService->revokeAdminAccessToken($object->getId());
  40. }
  41. return $subject;
  42. }
  43. }