59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			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);
 | |
| }
 |