MediaWiki REL1_31
UserGroupMembership Class Reference

Represents a "user group membership" – a specific instance of a user belonging to a group. More...

Collaboration diagram for UserGroupMembership:

Public Member Functions

 __construct ( $userId=0, $group=null, $expiry=null)
 
 delete (IDatabase $dbw=null)
 Delete the row from the user_groups table.
 
 getExpiry ()
 
 getGroup ()
 
 getUserId ()
 
 insert ( $allowUpdate=false, IDatabase $dbw=null)
 Insert a user right membership into the database.
 
 isExpired ()
 Has the membership expired?
 

Static Public Member Functions

static getGroupMemberName ( $group, $username)
 Gets the localized name for a member of a group, if it exists.
 
static getGroupName ( $group)
 Gets the localized friendly name for a group, if it exists.
 
static getGroupPage ( $group)
 Gets the title of a page describing a particular user group.
 
static getLink ( $ugm, IContextSource $context, $format, $userName=null)
 Gets a link for a user group, possibly including the expiry date if relevant.
 
static getMembership ( $userId, $group, IDatabase $db=null)
 Returns a UserGroupMembership object that pertains to the given user and group, or false if the user does not belong to that group (or the assignment has expired).
 
static getMembershipsForUser ( $userId, IDatabase $db=null)
 Returns UserGroupMembership objects for all the groups a user currently belongs to.
 
static newFromRow ( $row)
 Creates a new UserGroupMembership object from a database row.
 
static purgeExpired ()
 Purge expired memberships from the user_groups table.
 
static selectFields ()
 Returns the list of user_groups fields that should be selected to create a new user group membership.
 

Protected Member Functions

 getDatabaseArray (IDatabase $db)
 Get an array suitable for passing to $dbw->insert() or $dbw->update()
 
 initFromRow ( $row)
 

Private Attributes

string null $expiry
 Timestamp of expiry in TS_MW format, or null if no expiry.
 
string $group
 
int $userId
 The ID of the user who belongs to the group.
 

Detailed Description

Represents a "user group membership" – a specific instance of a user belonging to a group.

For example, the fact that user Mary belongs to the sysop group is a user group membership.

The class encapsulates rows in the user_groups table. The logic is low-level and doesn't run any hooks. Often, you will want to call User::addGroup() or User::removeGroup() instead.

Since
1.29

Definition at line 37 of file UserGroupMembership.php.

Constructor & Destructor Documentation

◆ __construct()

UserGroupMembership::__construct ( $userId = 0,
$group = null,
$expiry = null )
Parameters
int$userIdThe ID of the user who belongs to the group
string$groupThe internal group name
string | null$expiryTimestamp of expiry in TS_MW format, or null if no expiry

Definition at line 52 of file UserGroupMembership.php.

References $expiry, and group.

Member Function Documentation

◆ delete()

UserGroupMembership::delete ( IDatabase $dbw = null)

Delete the row from the user_groups table.

Exceptions
MWException
Parameters
IDatabase | null$dbwOptional master database connection to use
Returns
bool Whether or not anything was deleted

Definition at line 119 of file UserGroupMembership.php.

References Wikimedia\Rdbms\IDatabase\affectedRows(), DB_MASTER, Wikimedia\Rdbms\IDatabase\delete(), group, Wikimedia\Rdbms\IDatabase\insert(), wfGetDB(), and wfReadOnly().

◆ getDatabaseArray()

UserGroupMembership::getDatabaseArray ( IDatabase $db)
protected

Get an array suitable for passing to $dbw->insert() or $dbw->update()

Parameters
IDatabase$db
Returns
array

Definition at line 218 of file UserGroupMembership.php.

References Wikimedia\Rdbms\IDatabase\timestamp().

Referenced by insert().

◆ getExpiry()

UserGroupMembership::getExpiry ( )
Returns
string|null Timestamp of expiry in TS_MW format, or null if no expiry

Definition at line 75 of file UserGroupMembership.php.

Referenced by MediaWiki\Preferences\DefaultPreferencesFactory\profilePreferences().

◆ getGroup()

UserGroupMembership::getGroup ( )
Returns
string

Definition at line 68 of file UserGroupMembership.php.

◆ getGroupMemberName()

static UserGroupMembership::getGroupMemberName ( $group,
$username )
static

Gets the localized name for a member of a group, if it exists.

For example, "administrator" or "bureaucrat"

Parameters
string$groupInternal group name
string$usernameUsername for gender
Returns
string Localized name for group member

Definition at line 455 of file UserGroupMembership.php.

References $username, and wfMessage().

◆ getGroupName()

static UserGroupMembership::getGroupName ( $group)
static

Gets the localized friendly name for a group, if it exists.

For example, "Administrators" or "Bureaucrats"

Parameters
string$groupInternal group name
Returns
string Localized friendly group name

Definition at line 442 of file UserGroupMembership.php.

References wfMessage().

◆ getGroupPage()

static UserGroupMembership::getGroupPage ( $group)
static

Gets the title of a page describing a particular user group.

When the name of the group appears in the UI, it can link to this page.

Parameters
string$groupInternal group name
Returns
Title|bool Title of the page if it exists, false otherwise

Definition at line 467 of file UserGroupMembership.php.

References $title, and wfMessage().

◆ getLink()

static UserGroupMembership::getLink ( $ugm,
IContextSource $context,
$format,
$userName = null )
static

Gets a link for a user group, possibly including the expiry date if relevant.

Parameters
string | UserGroupMembership$ugmEither a group name as a string, or a UserGroupMembership object
IContextSource$context
string$formatEither 'wiki' or 'html'
string | null$userNameIf you want to use the group member message ("administrator"), pass the name of the user who belongs to the group; it is used for GENDER of the group member message. If you instead want the group name message ("Administrators"), omit this parameter.
Returns
string

Definition at line 375 of file UserGroupMembership.php.

References $context, $expiry, and Linker\link().

Referenced by MediaWiki\Preferences\DefaultPreferencesFactory\profilePreferences().

◆ getMembership()

static UserGroupMembership::getMembership ( $userId,
$group,
IDatabase $db = null )
static

Returns a UserGroupMembership object that pertains to the given user and group, or false if the user does not belong to that group (or the assignment has expired).

Parameters
int$userIdID of the user to search for
string$groupUser group name
IDatabase | null$dbOptional database connection
Returns
UserGroupMembership|false

Definition at line 341 of file UserGroupMembership.php.

References DB_REPLICA, and wfGetDB().

◆ getMembershipsForUser()

static UserGroupMembership::getMembershipsForUser ( $userId,
IDatabase $db = null )
static

Returns UserGroupMembership objects for all the groups a user currently belongs to.

Parameters
int$userIdID of the user to search for
IDatabase | null$dbOptional database connection
Returns
UserGroupMembership[] Associative array of (group name => UserGroupMembership object)

Definition at line 310 of file UserGroupMembership.php.

References $res, DB_REPLICA, and wfGetDB().

◆ getUserId()

UserGroupMembership::getUserId ( )
Returns
int

Definition at line 61 of file UserGroupMembership.php.

◆ initFromRow()

UserGroupMembership::initFromRow ( $row)
protected

Definition at line 79 of file UserGroupMembership.php.

References group, and wfTimestamp().

◆ insert()

UserGroupMembership::insert ( $allowUpdate = false,
IDatabase $dbw = null )

Insert a user right membership into the database.

When $allowUpdate is false, the function fails if there is a conflicting membership entry (same user and group) already in the table.

Exceptions
MWException
Parameters
bool$allowUpdateWhether to perform "upsert" instead of INSERT
IDatabase | null$dbwIf you have one available
Returns
bool Whether or not anything was inserted

Definition at line 156 of file UserGroupMembership.php.

References Wikimedia\Rdbms\IDatabase\addQuotes(), Wikimedia\Rdbms\IDatabase\affectedRows(), DB_MASTER, getDatabaseArray(), group, Wikimedia\Rdbms\IDatabase\insert(), Wikimedia\Rdbms\IDatabase\selectRow(), JobQueueGroup\singleton(), Wikimedia\Rdbms\IDatabase\timestamp(), Wikimedia\Rdbms\IDatabase\update(), and wfGetDB().

◆ isExpired()

UserGroupMembership::isExpired ( )

Has the membership expired?

Returns
bool

Definition at line 230 of file UserGroupMembership.php.

References wfTimestampNow().

◆ newFromRow()

static UserGroupMembership::newFromRow ( $row)
static

Creates a new UserGroupMembership object from a database row.

Parameters
stdClass$rowThe row from the user_groups table
Returns
UserGroupMembership

Definition at line 93 of file UserGroupMembership.php.

◆ purgeExpired()

static UserGroupMembership::purgeExpired ( )
static

◆ selectFields()

static UserGroupMembership::selectFields ( )
static

Returns the list of user_groups fields that should be selected to create a new user group membership.

Returns
array

Definition at line 104 of file UserGroupMembership.php.

Member Data Documentation

◆ $expiry

string null UserGroupMembership::$expiry
private

Timestamp of expiry in TS_MW format, or null if no expiry.

Definition at line 45 of file UserGroupMembership.php.

Referenced by __construct(), and getLink().

◆ $group

string UserGroupMembership::$group
private

Definition at line 42 of file UserGroupMembership.php.

◆ $userId

int UserGroupMembership::$userId
private

The ID of the user who belongs to the group.

Definition at line 39 of file UserGroupMembership.php.


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