MediaWiki  master
CentralIdLookup Class Reference

The CentralIdLookup service allows for connecting local users with cluster-wide IDs. More...

Inheritance diagram for CentralIdLookup:
Collaboration diagram for CentralIdLookup:

Public Member Functions

 centralIdFromLocalUser (User $user, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given a local User object, return the central ID. More...
 
 centralIdFromName ( $name, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given a (local) user name, return the central ID. More...
 
 centralIdsFromNames (array $names, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given an array of (local) user names, return the central IDs. More...
 
 getProviderId ()
 
 isAttached (User $user, $wikiId=null)
 Check that a User is attached on the specified wiki. More...
 
 localUserFromCentralId ( $id, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given a central user ID, return a local User object. More...
 
 lookupCentralIds (array $idToName, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given central user IDs, return the (local) user names. More...
 
 lookupUserNames (array $nameToId, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given (local) user names, return the central IDs. More...
 
 nameFromCentralId ( $id, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given a central user ID, return the (local) user name. More...
 
 namesFromCentralIds (array $ids, $audience=self::AUDIENCE_PUBLIC, $flags=self::READ_NORMAL)
 Given a an array of central user IDs, return the (local) user names. More...
 

Static Public Member Functions

static factory ( $providerId=null)
 Fetch a CentralIdLookup. More...
 
static resetCache ()
 Reset internal cache for unit testing. More...
 

Public Attributes

const AUDIENCE_PUBLIC = 1
 
const AUDIENCE_RAW = 2
 
- Public Attributes inherited from IDBAccessObject
const READ_LOCKING = self::READ_LATEST | 2
 Constants for object loading bitfield flags (higher => higher QoS) More...
 
const READ_NONE = -1
 

Protected Member Functions

 checkAudience ( $audience)
 Check that the "audience" parameter is valid. More...
 

Private Attributes

string $providerId
 

Static Private Attributes

static CentralIdLookup [] $instances = []
 

Detailed Description

The CentralIdLookup service allows for connecting local users with cluster-wide IDs.

Since
1.27

Definition at line 30 of file CentralIdLookup.php.

Member Function Documentation

◆ centralIdFromLocalUser()

CentralIdLookup::centralIdFromLocalUser ( User  $user,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given a local User object, return the central ID.

Note
Unlike centralIdFromName(), this does guarantee that the local user is attached to the central account.
Parameters
User$userLocal user
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
int User ID; 0 if the local user does not correspond to a central user, $audience lacks the rights needed to see it, or the central user isn't locally attached.

Definition at line 256 of file CentralIdLookup.php.

References centralIdFromName(), User\getName(), and isAttached().

◆ centralIdFromName()

CentralIdLookup::centralIdFromName (   $name,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given a (local) user name, return the central ID.

Note
There's no requirement that the user name actually exists locally, or if it does that it's actually attached to the central account.
Parameters
string$nameCanonicalized user name
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
int User ID; 0 if the name does not correspond to a user or $audience lacks the rights needed to see it.

Definition at line 193 of file CentralIdLookup.php.

References $name, and lookupUserNames().

Referenced by centralIdFromLocalUser().

◆ centralIdsFromNames()

CentralIdLookup::centralIdsFromNames ( array  $names,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given an array of (local) user names, return the central IDs.

Parameters
string[]$names Canonicalized user names
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
int[] User IDs
Since
1.30

Definition at line 208 of file CentralIdLookup.php.

References lookupUserNames().

◆ checkAudience()

CentralIdLookup::checkAudience (   $audience)
protected

Check that the "audience" parameter is valid.

Parameters
int | User$audienceOne of the audience constants, or a specific user
Returns
User|null User to check against, or null if no checks are needed
Exceptions
InvalidArgumentException

Definition at line 89 of file CentralIdLookup.php.

References $user, array(), isAttached(), lookupCentralIds(), lookupUserNames(), null, and User.

Referenced by LocalIdLookup\lookupCentralIds(), and LocalIdLookup\lookupUserNames().

◆ factory()

◆ getProviderId()

CentralIdLookup::getProviderId ( )
final

Definition at line 79 of file CentralIdLookup.php.

References $providerId.

◆ isAttached()

CentralIdLookup::isAttached ( User  $user,
  $wikiId = null 
)
abstract

Check that a User is attached on the specified wiki.

If unattached local accounts don't exist in your extension, this comes down to a check whether the central account exists at all and that $wikiId is using the same central database.

Parameters
User$user
string | null$wikiIdWiki to check attachment status. If null, check the current wiki.
Returns
bool

Referenced by centralIdFromLocalUser(), checkAudience(), and localUserFromCentralId().

◆ localUserFromCentralId()

CentralIdLookup::localUserFromCentralId (   $id,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given a central user ID, return a local User object.

Note
Unlike nameFromCentralId(), this does guarantee that the local user exists and is attached to the central account.
Parameters
int$idCentral user ID
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
User|null Local user, or null if: $id doesn't correspond to a user, $audience lacks the rights needed to see the user, the user doesn't exist locally, or the user isn't locally attached.

Definition at line 232 of file CentralIdLookup.php.

References $name, $user, User\getId(), isAttached(), nameFromCentralId(), User\newFromName(), and null.

◆ lookupCentralIds()

CentralIdLookup::lookupCentralIds ( array  $idToName,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)
abstract

Given central user IDs, return the (local) user names.

Note
There's no requirement that the user names actually exist locally, or if they do that they're actually attached to the central account.
Parameters
array$idToNameArray with keys being central user IDs
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
array Copy of $idToName with values set to user names (or empty-string if the user exists but $audience lacks the rights needed to see it). IDs not corresponding to a user are unchanged.

Referenced by checkAudience(), nameFromCentralId(), and namesFromCentralIds().

◆ lookupUserNames()

CentralIdLookup::lookupUserNames ( array  $nameToId,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)
abstract

Given (local) user names, return the central IDs.

Note
There's no requirement that the user names actually exist locally, or if they do that they're actually attached to the central account.
Parameters
array$nameToIdArray with keys being canonicalized user names
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
array Copy of $nameToId with values set to central IDs. Names not corresponding to a user (or $audience lacks the rights needed to see it) are unchanged.

Referenced by centralIdFromName(), centralIdsFromNames(), and checkAudience().

◆ nameFromCentralId()

CentralIdLookup::nameFromCentralId (   $id,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given a central user ID, return the (local) user name.

Note
There's no requirement that the user name actually exists locally, or if it does that it's actually attached to the central account.
Parameters
int$idCentral user ID
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
string|null User name, or empty string if $audience lacks the rights needed to see it, or null if $id doesn't correspond to a user

Definition at line 155 of file CentralIdLookup.php.

References lookupCentralIds(), and null.

Referenced by localUserFromCentralId().

◆ namesFromCentralIds()

CentralIdLookup::namesFromCentralIds ( array  $ids,
  $audience = self::AUDIENCE_PUBLIC,
  $flags = self::READ_NORMAL 
)

Given a an array of central user IDs, return the (local) user names.

Parameters
int[]$ids Central user IDs
int | User$audienceOne of the audience constants, or a specific user
int$flagsIDBAccessObject read flags
Returns
string[] User names
Since
1.30

Definition at line 170 of file CentralIdLookup.php.

References $name, and lookupCentralIds().

◆ resetCache()

static CentralIdLookup::resetCache ( )
static

Reset internal cache for unit testing.

Definition at line 72 of file CentralIdLookup.php.

Referenced by BotPasswordTest\setUp().

Member Data Documentation

◆ $instances

CentralIdLookup [] CentralIdLookup::$instances = []
staticprivate

Definition at line 36 of file CentralIdLookup.php.

◆ $providerId

string CentralIdLookup::$providerId
private

Definition at line 39 of file CentralIdLookup.php.

Referenced by factory(), and getProviderId().

◆ AUDIENCE_PUBLIC

const CentralIdLookup::AUDIENCE_PUBLIC = 1

Definition at line 32 of file CentralIdLookup.php.

Referenced by CentralIdLookupTest\testCheckAudience().

◆ AUDIENCE_RAW


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