Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/drydock/controller/DrydockAuthorizationListController.php
12256 views
1
<?php
2
3
final class DrydockAuthorizationListController
4
extends DrydockController {
5
6
private $blueprint;
7
8
public function setBlueprint(DrydockBlueprint $blueprint) {
9
$this->blueprint = $blueprint;
10
return $this;
11
}
12
13
public function getBlueprint() {
14
return $this->blueprint;
15
}
16
17
public function shouldAllowPublic() {
18
return true;
19
}
20
21
public function handleRequest(AphrontRequest $request) {
22
$viewer = $this->getViewer();
23
24
$engine = new DrydockAuthorizationSearchEngine();
25
26
$id = $request->getURIData('id');
27
28
$blueprint = id(new DrydockBlueprintQuery())
29
->setViewer($viewer)
30
->withIDs(array($id))
31
->executeOne();
32
if (!$blueprint) {
33
return new Aphront404Response();
34
}
35
36
$this->setBlueprint($blueprint);
37
$engine->setBlueprint($blueprint);
38
39
$querykey = $request->getURIData('queryKey');
40
41
$controller = id(new PhabricatorApplicationSearchController())
42
->setQueryKey($querykey)
43
->setSearchEngine($engine)
44
->setNavigation($this->buildSideNavView());
45
46
return $this->delegateToController($controller);
47
}
48
49
public function buildSideNavView() {
50
$nav = new AphrontSideNavFilterView();
51
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
52
53
$engine = id(new DrydockAuthorizationSearchEngine())
54
->setViewer($this->getViewer());
55
56
$engine->setBlueprint($this->getBlueprint());
57
$engine->addNavigationItems($nav->getMenu());
58
59
$nav->selectFilter(null);
60
61
return $nav;
62
}
63
64
protected function buildApplicationCrumbs() {
65
$crumbs = parent::buildApplicationCrumbs();
66
67
$blueprint = $this->getBlueprint();
68
if ($blueprint) {
69
$id = $blueprint->getID();
70
71
$crumbs->addTextCrumb(
72
pht('Blueprints'),
73
$this->getApplicationURI('blueprint/'));
74
75
$crumbs->addTextCrumb(
76
$blueprint->getBlueprintName(),
77
$this->getApplicationURI("blueprint/{$id}/"));
78
79
$crumbs->addTextCrumb(
80
pht('Authorizations'),
81
$this->getApplicationURI("blueprint/{$id}/authorizations/"));
82
}
83
84
return $crumbs;
85
}
86
87
}
88
89