2 namespace wcf\data\session\virtual
;
3 use wcf\data\AbstractDatabaseObjectAction
;
7 * Executes virtual session-related actions.
9 * @author Alexander Ebert
10 * @copyright 2001-2014 WoltLab GmbH
11 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
12 * @package com.woltlab.wcf
13 * @subpackage data.session.virtual
14 * @category Community Framework
16 class SessionVirtualAction
extends AbstractDatabaseObjectAction
{
18 * @see \wcf\data\AbstractDatabaseObjectAction::$className
20 protected $className = 'wcf\data\session\virtual\SessionVirtualEditor';
23 * Attention: This method does not always return a new object, in case a matching virtual session
24 * already exists, the existing session will be returned rather than a new session being created.
26 * @see \wcf\data\AbstractDatabaseObjectAction::create()
28 public function create() {
29 // try to find an existing virtual session
30 $baseClass = call_user_func(array($this->className
, 'getBaseClass'));
31 $virtualSession = call_user_func(array($baseClass, 'getExistingSession'), $this->parameters
['data']['sessionID']);
32 if ($virtualSession !== null) {
33 return $virtualSession;
36 if (!isset($this->parameters
['data']['lastActivityTime'])) $this->parameters
['data']['lastActivityTime'] = TIME_NOW
;
37 if (!isset($this->parameters
['data']['ipAddress'])) $this->parameters
['data']['ipAddress'] = UserUtil
::getIpAddress();
38 if (!isset($this->parameters
['data']['userAgent'])) $this->parameters
['data']['userAgent'] = UserUtil
::getUserAgent();
40 return parent
::create();