Your IP : 216.73.217.13


Current Path : /home/rtorresani/www/vendor/magento/module-two-factor-auth/Observer/
Upload File :
Current File : //home/rtorresani/www/vendor/magento/module-two-factor-auth/Observer/AdminUserSaveAfter.php

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\TwoFactorAuth\Observer;

use Magento\Framework\AuthorizationInterface;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\TwoFactorAuth\Api\UserConfigManagerInterface;

/**
 * Save tfa providers information in user entity
 */
class AdminUserSaveAfter implements ObserverInterface
{
    /**
     * @var UserConfigManagerInterface
     */
    private $userConfigManager;

    /**
     * @var AuthorizationInterface
     */
    private $authorization;

    /**
     * @param UserConfigManagerInterface $userConfigManager
     * @param AuthorizationInterface $authorization
     */
    public function __construct(
        UserConfigManagerInterface $userConfigManager,
        AuthorizationInterface $authorization
    ) {
        $this->userConfigManager = $userConfigManager;
        $this->authorization = $authorization;
    }

    /**
     * @inheritDoc
     */
    public function execute(Observer $observer)
    {
        if ($this->authorization->isAllowed('Magento_TwoFactorAuth::tfa')) {
            $user = $observer->getEvent()->getObject();
            $data = $user->getData();

            if (isset($data['tfa_providers'])) {
                if (!is_array($data['tfa_providers'])) {
                    $data['tfa_providers'] = [];
                }
                $this->userConfigManager->setProvidersCodes((int) $user->getId(), $data['tfa_providers']);
            }
        }
    }
}