[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Joomla! Content Management System 5 * 6 * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> 7 * @license GNU General Public License version 2 or later; see LICENSE.txt 8 */ 9 10 namespace Joomla\CMS\Session\EventListener; 11 12 use Joomla\CMS\Session\MetadataManager; 13 use Joomla\Registry\Registry; 14 use Joomla\Session\SessionEvent; 15 16 // phpcs:disable PSR1.Files.SideEffects 17 \defined('JPATH_PLATFORM') or die; 18 // phpcs:enable PSR1.Files.SideEffects 19 20 /** 21 * Event listener for session events regarding the session metadata for users. 22 * 23 * @since 4.0.0 24 */ 25 final class MetadataManagerListener 26 { 27 /** 28 * Session metadata manager. 29 * 30 * @var MetadataManager 31 * @since 4.0.0 32 */ 33 private $metadataManager; 34 35 /** 36 * Application configuration. 37 * 38 * @var Registry 39 * @since 4.0.0 40 */ 41 private $config; 42 43 /** 44 * Constructor. 45 * 46 * @param MetadataManager $metadataManager Session metadata manager. 47 * @param Registry $config Application configuration. 48 * 49 * @since 4.0.0 50 */ 51 public function __construct(MetadataManager $metadataManager, Registry $config) 52 { 53 $this->metadataManager = $metadataManager; 54 $this->config = $config; 55 } 56 57 /** 58 * Listener for the `session.start` event. 59 * 60 * @param SessionEvent $event The session event. 61 * 62 * @return void 63 * 64 * @since 4.0.0 65 */ 66 public function onAfterSessionStart(SessionEvent $event) 67 { 68 // Whether to track Session Metadata 69 if (!$this->config->get('session_metadata', true) || !$event->getSession()->has('user')) { 70 return; 71 } 72 73 $user = $event->getSession()->get('user'); 74 75 // Whether to track Session Metadata for Guest user 76 if (!$this->config->get('session_metadata_for_guest', true) && !$user->id) { 77 return; 78 } 79 80 $this->metadataManager->createOrUpdateRecord($event->getSession(), $user); 81 } 82 }
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 |