MediaWiki master
MediaWiki\Session\SessionInfo Class Reference

Value object returned by SessionProvider. More...

Public Member Functions

 __construct ( $priority, array $data)
 
 __toString ()
 
 forceHTTPS ()
 Whether this session should only be used over HTTPS.
 
 forceUse ()
 Force use of this SessionInfo if validation fails.
 
 getId ()
 Return the session ID.
 
 getPriority ()
 Return the priority.
 
 getProvider ()
 Return the provider.
 
 getProviderMetadata ()
 Return provider metadata.
 
 getUserInfo ()
 Return the user.
 
 isIdSafe ()
 Indicate whether the ID is "safe".
 
 wasPersisted ()
 Return whether the session is persisted.
 
 wasRemembered ()
 Return whether the user was remembered.
 

Static Public Member Functions

static compare ( $a, $b)
 Compare two SessionInfo objects by priority.
 

Public Attributes

const MAX_PRIORITY = 100
 Maximum allowed priority.
 
const MIN_PRIORITY = 1
 Minimum allowed priority.
 

Detailed Description

Value object returned by SessionProvider.

This holds the data necessary to construct a Session. May require services to be injected into the constructor.

Stability: newable
Since
1.27

Definition at line 37 of file SessionInfo.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Session\SessionInfo::__construct (   $priority,
array  $data 
)
Stability: stable
to call
Parameters
int$prioritySession priority
array$data
  • provider: (SessionProvider|null) If not given, the provider will be determined from the saved session data.
  • id: (string|null) Session ID
  • userInfo: (UserInfo|null) User known from the request. If $provider->canChangeUser() is false, a verified user must be provided.
  • persisted: (bool) Whether this session was persisted
  • remembered: (bool) Whether the verified user was remembered. Defaults to true.
  • forceHTTPS: (bool) Whether to force HTTPS for this session. This is ignored if $wgForceHTTPS is true.
  • metadata: (array) Provider metadata, to be returned by Session::getProviderMetadata(). See SessionProvider::mergeMetadata() and SessionProvider::refreshSessionInfo().
  • idIsSafe: (bool) Set true if the 'id' did not come from the user. Generally you'll use this from SessionProvider::newEmptySession(), and not from any other method.
  • forceUse: (bool) Set true if the 'id' is from SessionProvider::hashToSessionId() to delete conflicting session store data instead of discarding this SessionInfo. Ignored unless both 'provider' and 'id' are given.
  • copyFrom: (SessionInfo) SessionInfo to copy other data items from.

Definition at line 102 of file SessionInfo.php.

References MediaWiki\Session\SessionInfo\forceHTTPS(), MediaWiki\Session\SessionInfo\forceUse(), and MediaWiki\Session\SessionManager\validateSessionId().

Member Function Documentation

◆ __toString()

◆ compare()

static MediaWiki\Session\SessionInfo::compare (   $a,
  $b 
)
static

Compare two SessionInfo objects by priority.

Parameters
SessionInfo$a
SessionInfo$b
Returns
int Negative if $a < $b, positive if $a > $b, zero if equal

Definition at line 301 of file SessionInfo.php.

◆ forceHTTPS()

MediaWiki\Session\SessionInfo::forceHTTPS ( )
final

Whether this session should only be used over HTTPS.

This should be ignored if $wgForceHTTPS is true.

Returns
bool

Definition at line 285 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionInfo\__construct(), and MediaWiki\Session\SessionBackend\__construct().

◆ forceUse()

MediaWiki\Session\SessionInfo::forceUse ( )
final

Force use of this SessionInfo if validation fails.

The normal behavior is to discard the SessionInfo if validation against the data stored in the session store fails. If this returns true, SessionManager will instead delete the session store data so this SessionInfo may still be used. This is important for providers which use deterministic IDs and so cannot just generate a random new one.

Returns
bool

Definition at line 224 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionInfo\__construct().

◆ getId()

MediaWiki\Session\SessionInfo::getId ( )
final

◆ getPriority()

MediaWiki\Session\SessionInfo::getPriority ( )
final

Return the priority.

Returns
int

Definition at line 232 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionInfo\__toString().

◆ getProvider()

MediaWiki\Session\SessionInfo::getProvider ( )
final

Return the provider.

Returns
SessionProvider|null

Definition at line 185 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionBackend\__construct(), and MediaWiki\Session\SessionInfo\__toString().

◆ getProviderMetadata()

MediaWiki\Session\SessionInfo::getProviderMetadata ( )
final

Return provider metadata.

Returns
array|null

Definition at line 256 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionBackend\__construct().

◆ getUserInfo()

MediaWiki\Session\SessionInfo::getUserInfo ( )
final

Return the user.

Returns
UserInfo|null

Definition at line 240 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionBackend\__construct().

◆ isIdSafe()

MediaWiki\Session\SessionInfo::isIdSafe ( )
final

Indicate whether the ID is "safe".

The ID is safe in the following cases:

  • The ID was randomly generated by the constructor.
  • The ID was found in the backend data store.
  • $this->getProvider()->persistsSessionId() is false.
  • The constructor was explicitly told it's safe using the 'idIsSafe' parameter.
Returns
bool

Definition at line 209 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionManager\getSessionFromInfo().

◆ wasPersisted()

MediaWiki\Session\SessionInfo::wasPersisted ( )
final

Return whether the session is persisted.

Returns
bool

Definition at line 248 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionBackend\__construct(), and MediaWiki\Session\SessionManager\getSessionFromInfo().

◆ wasRemembered()

MediaWiki\Session\SessionInfo::wasRemembered ( )
final

Return whether the user was remembered.

For providers that can persist the user separately from the session, the human using it may not actually want that to be done. For example, a cookie-based provider can set cookies that are longer-lived than the backend session data, but on a public terminal the human likely doesn't want those cookies set.

This is false unless a non-anonymous verified user was passed to the SessionInfo constructor by the provider, and the provider didn't pass false for the 'remembered' data item.

Returns
bool

Definition at line 275 of file SessionInfo.php.

Referenced by MediaWiki\Session\SessionBackend\__construct(), and MediaWiki\Session\SessionManager\getSessionFromInfo().

Member Data Documentation

◆ MAX_PRIORITY

const MediaWiki\Session\SessionInfo::MAX_PRIORITY = 100

◆ MIN_PRIORITY


The documentation for this class was generated from the following file: