[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * @package Joomla.Plugin 5 * @subpackage System.Webauthn 6 * 7 * @copyright (C) 2020 Open Source Matters, Inc. <https://www.joomla.org> 8 * @license GNU General Public License version 2 or later; see LICENSE.txt 9 */ 10 11 namespace Joomla\Plugin\System\Webauthn\PluginTraits; 12 13 use Exception; 14 use Joomla\CMS\Factory; 15 use Joomla\CMS\Log\Log; 16 use Joomla\Database\DatabaseDriver; 17 use Joomla\Event\Event; 18 use Joomla\Utilities\ArrayHelper; 19 20 // phpcs:disable PSR1.Files.SideEffects 21 \defined('_JEXEC') or die; 22 // phpcs:enable PSR1.Files.SideEffects 23 24 /** 25 * Delete all WebAuthn credentials for a particular user 26 * 27 * @since 4.0.0 28 */ 29 trait UserDeletion 30 { 31 /** 32 * Remove all passwordless credential information for the given user ID. 33 * 34 * This method is called after user data is deleted from the database. 35 * 36 * @param Event $event The event we are handling 37 * 38 * @return void 39 * 40 * @since 4.0.0 41 */ 42 public function onUserAfterDelete(Event $event): void 43 { 44 /** 45 * @var array $user Holds the user data 46 * @var bool $success True if user was successfully stored in the database 47 * @var string|null $msg Message 48 */ 49 [$user, $success, $msg] = $event->getArguments(); 50 51 if (!$success) { 52 $this->returnFromEvent($event, true); 53 } 54 55 $userId = ArrayHelper::getValue($user, 'id', 0, 'int'); 56 57 if ($userId) { 58 Log::add("Removing WebAuthn Passwordless Login information for deleted user #{$userId}", Log::DEBUG, 'webauthn.system'); 59 60 /** @var DatabaseDriver $db */ 61 $db = Factory::getContainer()->get('DatabaseDriver'); 62 63 $query = $db->getQuery(true) 64 ->delete($db->qn('#__webauthn_credentials')) 65 ->where($db->qn('user_id') . ' = :userId') 66 ->bind(':userId', $userId); 67 68 try { 69 $db->setQuery($query)->execute(); 70 } catch (Exception $e) { 71 // Don't worry if this fails 72 } 73 74 $this->returnFromEvent($event, true); 75 } 76 } 77 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |