diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2021-12-13 20:40:58 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2021-12-13 20:40:58 +0000 |
commit | 132cba07f2da7d4ffba24879cc1a61bf2718c5b0 (patch) | |
tree | c8d94c00a64d1b540ee46d6e214632e721159693 | |
parent | d81f7ee11086f2cc01bc1919db46fb416225f751 (diff) | |
parent | 07545c2389a46c01bbd38b8cabb3e8b762cf0c56 (diff) |
Merge "UserSelectQueryBuilder: Make it possible to filter via user's hidden status"
-rw-r--r-- | includes/user/UserSelectQueryBuilder.php | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/includes/user/UserSelectQueryBuilder.php b/includes/user/UserSelectQueryBuilder.php index 491167edd974..20f7e6b913fb 100644 --- a/includes/user/UserSelectQueryBuilder.php +++ b/includes/user/UserSelectQueryBuilder.php @@ -163,6 +163,24 @@ class UserSelectQueryBuilder extends SelectQueryBuilder { } /** + * Filter based on user hidden status + * + * @param bool $hidden True - only hidden users, false - no hidden users + * @return $this + */ + public function hidden( bool $hidden ): self { + $this->leftJoin( 'ipblocks', null, [ "actor_user=ipb_user" ] ); + if ( $hidden ) { + // only hidden users + $this->conds( [ 'ipb_deleted = 1' ] ); + } else { + // filter out hidden users + $this->conds( [ 'ipb_deleted = 0 OR ipb_deleted IS NULL' ] ); + } + return $this; + } + + /** * Fetch a single UserIdentity that matches specified criteria. * * @return UserIdentity|null |