Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / auth / query / PhabricatorAuthPasswordQuery.php
bloba77fd54b13cbcb98dfe362187ab3af3e120af322
1 <?php
3 final class PhabricatorAuthPasswordQuery
4 extends PhabricatorCursorPagedPolicyAwareQuery {
6 private $ids;
7 private $phids;
8 private $objectPHIDs;
9 private $passwordTypes;
10 private $isRevoked;
12 public function withIDs(array $ids) {
13 $this->ids = $ids;
14 return $this;
17 public function withPHIDs(array $phids) {
18 $this->phids = $phids;
19 return $this;
22 public function withObjectPHIDs(array $object_phids) {
23 $this->objectPHIDs = $object_phids;
24 return $this;
27 public function withPasswordTypes(array $types) {
28 $this->passwordTypes = $types;
29 return $this;
32 public function withIsRevoked($is_revoked) {
33 $this->isRevoked = $is_revoked;
34 return $this;
37 public function newResultObject() {
38 return new PhabricatorAuthPassword();
41 protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
42 $where = parent::buildWhereClauseParts($conn);
44 if ($this->ids !== null) {
45 $where[] = qsprintf(
46 $conn,
47 'id IN (%Ld)',
48 $this->ids);
51 if ($this->phids !== null) {
52 $where[] = qsprintf(
53 $conn,
54 'phid IN (%Ls)',
55 $this->phids);
58 if ($this->objectPHIDs !== null) {
59 $where[] = qsprintf(
60 $conn,
61 'objectPHID IN (%Ls)',
62 $this->objectPHIDs);
65 if ($this->passwordTypes !== null) {
66 $where[] = qsprintf(
67 $conn,
68 'passwordType IN (%Ls)',
69 $this->passwordTypes);
72 if ($this->isRevoked !== null) {
73 $where[] = qsprintf(
74 $conn,
75 'isRevoked = %d',
76 (int)$this->isRevoked);
79 return $where;
82 protected function willFilterPage(array $passwords) {
83 $object_phids = mpull($passwords, 'getObjectPHID');
85 $objects = id(new PhabricatorObjectQuery())
86 ->setViewer($this->getViewer())
87 ->setParentQuery($this)
88 ->withPHIDs($object_phids)
89 ->execute();
90 $objects = mpull($objects, null, 'getPHID');
92 foreach ($passwords as $key => $password) {
93 $object = idx($objects, $password->getObjectPHID());
94 if (!$object) {
95 unset($passwords[$key]);
96 $this->didRejectResult($password);
97 continue;
100 $password->attachObject($object);
103 return $passwords;
106 public function getQueryApplicationClass() {
107 return 'PhabricatorAuthApplication';