![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-customer/Observer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Customer\Observer; use Magento\Customer\Api\GroupExcludedWebsiteRepositoryInterface; use Magento\Framework\Event\Observer; use Magento\Framework\Event\ObserverInterface; use Magento\Framework\Exception\LocalizedException; /** * Customer group authenticate observer. */ class CustomerGroupAuthenticate implements ObserverInterface { /** * @var GroupExcludedWebsiteRepositoryInterface */ private $customerGroupExcludedWebsiteRepository; /** * @var \Magento\Store\Model\StoreManagerInterface */ private $storeManager; /** * @param GroupExcludedWebsiteRepositoryInterface $customerGroupExcludedWebsiteRepository * @param \Magento\Store\Model\StoreManagerInterface $storeManager */ public function __construct( GroupExcludedWebsiteRepositoryInterface $customerGroupExcludedWebsiteRepository, \Magento\Store\Model\StoreManagerInterface $storeManager ) { $this->customerGroupExcludedWebsiteRepository = $customerGroupExcludedWebsiteRepository; $this->storeManager = $storeManager; } /** * Do not authenticate customer if website is excluded from customer's group. * * @param Observer $observer * @return void * @throws LocalizedException */ public function execute(Observer $observer): void { $websiteId = $this->storeManager->getStore()->getWebsiteId(); $customer = $observer->getData('model'); if ($customer->getGroupId()) { $excludedWebsites = $this->customerGroupExcludedWebsiteRepository->getCustomerGroupExcludedWebsites( (int)$customer->getGroupId() ); if (in_array($websiteId, $excludedWebsites, true)) { throw new LocalizedException(__('This website is excluded from customer\'s group.')); } } } }