Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/auth/query/PhabricatorAuthPasswordQuery.php
12262 views
1
<?php
2
3
final class PhabricatorAuthPasswordQuery
4
extends PhabricatorCursorPagedPolicyAwareQuery {
5
6
private $ids;
7
private $phids;
8
private $objectPHIDs;
9
private $passwordTypes;
10
private $isRevoked;
11
12
public function withIDs(array $ids) {
13
$this->ids = $ids;
14
return $this;
15
}
16
17
public function withPHIDs(array $phids) {
18
$this->phids = $phids;
19
return $this;
20
}
21
22
public function withObjectPHIDs(array $object_phids) {
23
$this->objectPHIDs = $object_phids;
24
return $this;
25
}
26
27
public function withPasswordTypes(array $types) {
28
$this->passwordTypes = $types;
29
return $this;
30
}
31
32
public function withIsRevoked($is_revoked) {
33
$this->isRevoked = $is_revoked;
34
return $this;
35
}
36
37
public function newResultObject() {
38
return new PhabricatorAuthPassword();
39
}
40
41
protected function buildWhereClauseParts(AphrontDatabaseConnection $conn) {
42
$where = parent::buildWhereClauseParts($conn);
43
44
if ($this->ids !== null) {
45
$where[] = qsprintf(
46
$conn,
47
'id IN (%Ld)',
48
$this->ids);
49
}
50
51
if ($this->phids !== null) {
52
$where[] = qsprintf(
53
$conn,
54
'phid IN (%Ls)',
55
$this->phids);
56
}
57
58
if ($this->objectPHIDs !== null) {
59
$where[] = qsprintf(
60
$conn,
61
'objectPHID IN (%Ls)',
62
$this->objectPHIDs);
63
}
64
65
if ($this->passwordTypes !== null) {
66
$where[] = qsprintf(
67
$conn,
68
'passwordType IN (%Ls)',
69
$this->passwordTypes);
70
}
71
72
if ($this->isRevoked !== null) {
73
$where[] = qsprintf(
74
$conn,
75
'isRevoked = %d',
76
(int)$this->isRevoked);
77
}
78
79
return $where;
80
}
81
82
protected function willFilterPage(array $passwords) {
83
$object_phids = mpull($passwords, 'getObjectPHID');
84
85
$objects = id(new PhabricatorObjectQuery())
86
->setViewer($this->getViewer())
87
->setParentQuery($this)
88
->withPHIDs($object_phids)
89
->execute();
90
$objects = mpull($objects, null, 'getPHID');
91
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;
98
}
99
100
$password->attachObject($object);
101
}
102
103
return $passwords;
104
}
105
106
public function getQueryApplicationClass() {
107
return 'PhabricatorAuthApplication';
108
}
109
110
}
111
112