summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2021-12-13 20:40:58 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2021-12-13 20:40:58 +0000
commit132cba07f2da7d4ffba24879cc1a61bf2718c5b0 (patch)
treec8d94c00a64d1b540ee46d6e214632e721159693
parentd81f7ee11086f2cc01bc1919db46fb416225f751 (diff)
parent07545c2389a46c01bbd38b8cabb3e8b762cf0c56 (diff)
Merge "UserSelectQueryBuilder: Make it possible to filter via user's hidden status"
-rw-r--r--includes/user/UserSelectQueryBuilder.php18
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