Spade

Mini Shell

Directory:~$ /home/lmsyaran/www/joomla5/administrator/components/com_users/postinstall/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/www/joomla5/administrator/components/com_users/postinstall/multifactorauth.php

<?php

/**
 * @package     Joomla.Administrator
 * @subpackage  com_users
 *
 * @copyright   (C) 2022 Open Source Matters, Inc.
<https://www.joomla.org>
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Database\DatabaseInterface;
use Joomla\Database\ParameterType;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
 * Post-installation message about the new Multi-factor Authentication:
condition check.
 *
 * Returns true if neither of the two new core MFA plugins are enabled.
 *
 * @return  boolean
 * @since   4.2.0
 */
function com_users_postinstall_mfa_condition(): bool
{
    return \count(PluginHelper::getPlugin('multifactorauth'))
< 1;
}

/**
 * Post-installation message about the new Multi-factor Authentication:
action.
 *
 * Enables the core MFA plugins.
 *
 * @return  void
 * @since   4.2.0
 */
function com_users_postinstall_mfa_action(): void
{
    /** @var DatabaseInterface $db */
    $db             =
Factory::getContainer()->get(DatabaseInterface::class);
    $coreMfaPlugins = ['email', 'totp',
'webauthn', 'yubikey'];

    $query = $db->getQuery(true)
        ->update($db->quoteName('#__extensions'))
        ->set($db->quoteName('enabled') . ' = 1')
        ->where($db->quoteName('type') . ' = ' .
$db->quote('plugin'))
        ->where($db->quoteName('folder') . ' = '
. $db->quote('multifactorauth'))
        ->whereIn($db->quoteName('element'),
$coreMfaPlugins, ParameterType::STRING);
    $db->setQuery($query);
    $db->execute();

    $url =
'index.php?option=com_plugins&filter[folder]=multifactorauth';
    Factory::getApplication()->redirect($url);
}