|
MediaWiki master
|
Manage user group memberships. More...
Public Member Functions | |
| __construct (private readonly ServiceOptions $options, private readonly ReadOnlyMode $readOnlyMode, private readonly IConnectionProvider $connectionProvider, private readonly HookContainer $hookContainer, private readonly JobQueueGroup $jobQueueGroup, private readonly TempUserConfig $tempUserConfig, private readonly UserFactory $userFactory, private readonly UserRequirementsConditionCheckerFactory $userRequirementsConditionCheckerFactory, private readonly RestrictedUserGroupConfigReader $restrictedUserGroupConfigReader, private readonly array $clearCacheCallbacks=[], private readonly string|false $wikiId=UserIdentity::LOCAL) | |
| addUserToAutopromoteOnceGroups (UserIdentity $user, string $event) | |
| Add the user to the group if they meet given criteria. | |
| addUserToGroup (UserIdentity $user, string $group, ?string $expiry=null, bool $allowUpdate=false) | |
| Add the user to the given group. | |
| addUserToMultipleGroups (UserIdentity $user, array $groups, ?string $expiry=null, bool $allowUpdate=false) | |
| Add the user to the given list of groups. | |
| clearCache (UserIdentity $user) | |
| Cleans cached group memberships for a given user. | |
| getGroupsChangeableBy (Authority $authority) | |
| Returns an array of groups that this $actor can add and remove. | |
| getGroupsChangeableByGroup (string $group) | |
| Returns an array of the groups that a particular group can add/remove. | |
| getUserAutopromoteGroups (UserIdentity $user) | |
| Get the groups for the given user based on $wgAutopromote. | |
| getUserAutopromoteOnceGroups (UserIdentity $user, string $event) | |
| Get the groups for the given user based on the given criteria. | |
| getUserDisabledGroups (UserIdentity $user, bool $includePrivateInfo=true) | |
| Returns a list of groups that the user belongs to but for some reason are currently disabled. | |
| getUserEffectiveGroups (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL, bool $recache=false, bool $includePrivateInfo=true) | |
| Get the list of implicit group memberships the user has. | |
| getUserFormerGroups (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL) | |
| Returns the groups the user has belonged to. | |
| getUserGroupMemberships (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL) | |
| Loads and returns UserGroupMembership objects for all the groups a user currently belongs to. | |
| getUserGroups (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL) | |
| Get the list of explicit group memberships this user has. | |
| getUserImplicitGroups (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL, bool $recache=false) | |
| Get the list of implicit group memberships this user has. | |
| getUserPrivilegedGroups (UserIdentity $user, int $queryFlags=IDBAccessObject::READ_NORMAL, bool $recache=false) | |
| Returns the list of privileged groups that $user belongs to. | |
| listAllGroups () | |
| Return the set of defined explicit groups. | |
| listAllImplicitGroups () | |
| Get a list of all configured implicit groups. | |
| loadGroupMembershipsFromArray (UserIdentity $user, array $userGroups, int $queryFlags=IDBAccessObject::READ_NORMAL) | |
| Load the user groups cache from the provided user groups data. | |
| newGroupMembershipFromRow (\stdClass $row) | |
| Creates a new UserGroupMembership instance from $row. | |
| newQueryBuilder (IReadableDatabase $db) | |
| purgeExpired () | |
| Purge expired memberships from the user_groups table. | |
| removeUserFromGroup (UserIdentity $user, string $group) | |
| Remove the user from the given group. | |
Public Attributes | |
| const | CONSTRUCTOR_OPTIONS |
| const | VALID_OPS = UserRequirementsConditionChecker::VALID_OPS |
| Logical operators recognized in $wgAutopromote. | |
| MediaWiki\User\UserGroupManager::__construct | ( | private readonly ServiceOptions | $options, |
| private readonly ReadOnlyMode | $readOnlyMode, | ||
| private readonly IConnectionProvider | $connectionProvider, | ||
| private readonly HookContainer | $hookContainer, | ||
| private readonly JobQueueGroup | $jobQueueGroup, | ||
| private readonly TempUserConfig | $tempUserConfig, | ||
| private readonly UserFactory | $userFactory, | ||
| private readonly UserRequirementsConditionCheckerFactory | $userRequirementsConditionCheckerFactory, | ||
| private readonly RestrictedUserGroupConfigReader | $restrictedUserGroupConfigReader, | ||
| private readonly array | $clearCacheCallbacks = [], | ||
| private readonly string|false | $wikiId = UserIdentity::LOCAL ) |
| ServiceOptions | $options | |
| ReadOnlyMode | $readOnlyMode | |
| IConnectionProvider | $connectionProvider | |
| HookContainer | $hookContainer | |
| JobQueueGroup | $jobQueueGroup | |
| TempUserConfig | $tempUserConfig | |
| UserFactory | $userFactory | |
| UserRequirementsConditionCheckerFactory | $userRequirementsConditionCheckerFactory | |
| RestrictedUserGroupConfigReader | $restrictedUserGroupConfigReader | |
| callable[] | $clearCacheCallbacks | |
| string | false | $wikiId |
Definition at line 125 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::addUserToAutopromoteOnceGroups | ( | UserIdentity | $user, |
| string | $event ) |
Add the user to the group if they meet given criteria.
Contrary to autopromotion by $wgAutopromote, the group will be possible to remove manually via Special:UserRights. In such cases, it will not be re-added automatically. The user will also not lose the group if they no longer meet the criteria.
| UserIdentity | $user | User to add to the groups |
| string | $event | Key in $wgAutopromoteOnce (each event has groups/criteria) |
Definition at line 569 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::addUserToGroup | ( | UserIdentity | $user, |
| string | $group, | ||
| ?string | $expiry = null, | ||
| bool | $allowUpdate = false ) |
Add the user to the given group.
This takes immediate effect. If the user is already in the group, the expiry time will be updated to the new expiry time. (If $expiry is omitted or null, the membership will be altered to never expire.)
| UserIdentity | $user | |
| string | $group | Name of the group to add |
| string | null | $expiry | Optional expiry timestamp in any format acceptable to wfTimestamp(), or null if the group assignment should not expire |
| bool | $allowUpdate | Whether to perform "upsert" instead of INSERT |
| InvalidArgumentException |
Definition at line 738 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::addUserToMultipleGroups | ( | UserIdentity | $user, |
| array | $groups, | ||
| ?string | $expiry = null, | ||
| bool | $allowUpdate = false ) |
Add the user to the given list of groups.
| UserIdentity | $user | |
| string[] | $groups | Names of the groups to add |
| string | null | $expiry | Optional expiry timestamp in any format acceptable to wfTimestamp(), or null if the group assignment should not expire |
| bool | $allowUpdate | Whether to perform "upsert" instead of INSERT |
| InvalidArgumentException |
Definition at line 864 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::clearCache | ( | UserIdentity | $user | ) |
Cleans cached group memberships for a given user.
Definition at line 1155 of file UserGroupManager.php.
References MediaWiki\DAO\WikiAwareEntity\assertWiki().
| MediaWiki\User\UserGroupManager::getGroupsChangeableBy | ( | Authority | $authority | ) |
Returns an array of groups that this $actor can add and remove.
| Authority | $authority |
Definition at line 1123 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getGroupsChangeableByGroup | ( | string | $group | ) |
Returns an array of the groups that a particular group can add/remove.
| string | $group | The group to check for whether it can add/remove |
Definition at line 1093 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserAutopromoteGroups | ( | UserIdentity | $user | ) |
Get the groups for the given user based on $wgAutopromote.
Supports only local-wiki checks. Trying to get autopromote groups for users from other wikis results in an empty array.
| UserIdentity | $user | The user to get the groups for |
Definition at line 421 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserAutopromoteOnceGroups | ( | UserIdentity | $user, |
| string | $event ) |
Get the groups for the given user based on the given criteria.
Does not return groups the user already belongs to or has once belonged.
| UserIdentity | $user | The user to get the groups for |
| string | $event | Key in $wgAutopromoteOnce (each event has groups/criteria) |
Definition at line 465 of file UserGroupManager.php.
References MediaWiki\User\UserIdentity\getName().
| MediaWiki\User\UserGroupManager::getUserDisabledGroups | ( | UserIdentity | $user, |
| bool | $includePrivateInfo = true ) |
Returns a list of groups that the user belongs to but for some reason are currently disabled.
This is used to stop people using group they no longer meet conditions for, as configured by $wgRestrictedGroups.
| UserIdentity | $user | |
| bool | $includePrivateInfo | If false, the function will include only those disabled groups that can be determined as disabled based on public information. |
Definition at line 329 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserEffectiveGroups | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL, | ||
| bool | $recache = false, | ||
| bool | $includePrivateInfo = true ) |
Get the list of implicit group memberships the user has.
This includes all explicit groups, plus 'user' if logged in, '*' for all accounts, and autopromoted groups, but it doesn't include disabled groups.
| UserIdentity | $user | |
| int | $queryFlags | |
| bool | $recache | Whether to avoid the cache |
| bool | $includePrivateInfo | If false, the function will pretend that the user is member of some groups even though they aren't (or vice versa), not to leak certain private information when it shouldn't be leaked |
Definition at line 274 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserFormerGroups | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL ) |
Returns the groups the user has belonged to.
The user may still belong to the returned groups. Compare with getUserGroups().
The function will not return groups the user had belonged to before MW 1.17
| UserIdentity | $user | |
| int | $queryFlags |
Definition at line 380 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserGroupMemberships | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL ) |
Loads and returns UserGroupMembership objects for all the groups a user currently belongs to.
| UserIdentity | $user | the user to search for |
| int | $queryFlags |
Definition at line 663 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserGroups | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL ) |
Get the list of explicit group memberships this user has.
The implicit * and user groups are not included.
Definition at line 648 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserImplicitGroups | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL, | ||
| bool | $recache = false ) |
Get the list of implicit group memberships this user has.
This includes 'user' if logged in, '*' for all accounts, and any autopromote groups.
| UserIdentity | $user | |
| int | $queryFlags | |
| bool | $recache | Whether to avoid the cache |
Definition at line 229 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::getUserPrivilegedGroups | ( | UserIdentity | $user, |
| int | $queryFlags = IDBAccessObject::READ_NORMAL, | ||
| bool | $recache = false ) |
Returns the list of privileged groups that $user belongs to.
Privileged groups are ones that can be abused.
Depending on how extensions extend this method, it might return values that are not strictly user groups (ACL list names, etc.). It is meant for logging/auditing, not for passing to methods that expect group names.
| UserIdentity | $user | |
| int | $queryFlags | |
| bool | $recache | Whether to avoid the cache |
Definition at line 518 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::listAllGroups | ( | ) |
Return the set of defined explicit groups.
The implicit groups (by default *, 'user' and 'autoconfirmed') are not included, as they are defined automatically, not in the database.
Definition at line 149 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::listAllImplicitGroups | ( | ) |
Get a list of all configured implicit groups.
Definition at line 167 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::loadGroupMembershipsFromArray | ( | UserIdentity | $user, |
| array | $userGroups, | ||
| int | $queryFlags = IDBAccessObject::READ_NORMAL ) |
Load the user groups cache from the provided user groups data.
| UserIdentity | $user | |
| array | $userGroups | an array of database query results |
| int | $queryFlags |
Definition at line 198 of file UserGroupManager.php.
References MediaWiki\DAO\WikiAwareEntity\assertWiki().
| MediaWiki\User\UserGroupManager::newGroupMembershipFromRow | ( | \stdClass | $row | ) |
Creates a new UserGroupMembership instance from $row.
The fields required to build an instance could be found using getQueryInfo() method.
| \\stdClass | $row | A database result object |
Definition at line 180 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::newQueryBuilder | ( | IReadableDatabase | $db | ) |
Definition at line 940 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::purgeExpired | ( | ) |
Purge expired memberships from the user_groups table.
Definition at line 957 of file UserGroupManager.php.
| MediaWiki\User\UserGroupManager::removeUserFromGroup | ( | UserIdentity | $user, |
| string | $group ) |
Remove the user from the given group.
This takes immediate effect.
| UserIdentity | $user | |
| string | $group | Name of the group to remove |
| InvalidArgumentException |
Definition at line 883 of file UserGroupManager.php.
| const MediaWiki\User\UserGroupManager::CONSTRUCTOR_OPTIONS |
Definition at line 39 of file UserGroupManager.php.
| const MediaWiki\User\UserGroupManager::VALID_OPS = UserRequirementsConditionChecker::VALID_OPS |
Logical operators recognized in $wgAutopromote.
Definition at line 61 of file UserGroupManager.php.