3 final class PhabricatorAlmanacApplication
extends PhabricatorApplication
{
5 public function getBaseURI() {
9 public function getName() {
10 return pht('Almanac');
13 public function getShortDescription() {
14 return pht('Service Directory');
17 public function getIcon() {
21 public function getTitleGlyph() {
22 return "\xE2\x98\x82";
25 public function getApplicationGroup() {
26 return self
::GROUP_UTILITIES
;
29 public function getHelpDocumentationArticles(PhabricatorUser
$viewer) {
32 'name' => pht('Almanac User Guide'),
33 'href' => PhabricatorEnv
::getDoclink('Almanac User Guide'),
38 public function getRoutes() {
41 '' => 'AlmanacConsoleController',
42 '(?P<objectType>service)/' => array(
43 $this->getQueryRoutePattern() => 'AlmanacServiceListController',
44 $this->getEditRoutePattern('edit/') => 'AlmanacServiceEditController',
45 'view/(?P<name>[^/]+)/' => 'AlmanacServiceViewController',
47 '(?P<objectType>device)/' => array(
48 $this->getQueryRoutePattern() => 'AlmanacDeviceListController',
49 $this->getEditRoutePattern('edit/') => 'AlmanacDeviceEditController',
50 'view/(?P<name>[^/]+)/' => 'AlmanacDeviceViewController',
52 'interface/' => array(
53 'edit/(?:(?P<id>\d+)/)?' => 'AlmanacInterfaceEditController',
54 'delete/(?:(?P<id>\d+)/)?' => 'AlmanacInterfaceDeleteController',
57 'edit/(?:(?P<id>\d+)/)?' => 'AlmanacBindingEditController',
58 'disable/(?:(?P<id>\d+)/)?' => 'AlmanacBindingDisableController',
59 '(?P<id>\d+)/' => 'AlmanacBindingViewController',
62 $this->getQueryRoutePattern() => 'AlmanacNetworkListController',
63 'edit/(?:(?P<id>\d+)/)?' => 'AlmanacNetworkEditController',
64 '(?P<id>\d+)/' => 'AlmanacNetworkViewController',
66 'namespace/' => array(
67 $this->getQueryRoutePattern() => 'AlmanacNamespaceListController',
68 $this->getEditRoutePattern('edit/')
69 => 'AlmanacNamespaceEditController',
70 '(?P<id>\d+)/' => 'AlmanacNamespaceViewController',
73 'delete/' => 'AlmanacPropertyDeleteController',
74 'update/' => 'AlmanacPropertyEditController',
80 protected function getCustomCapabilities() {
81 $cluster_caption = pht(
82 'This permission is very dangerous. %s',
86 'href' => PhabricatorEnv
::getDoclink('Clustering Introduction'),
92 AlmanacCreateServicesCapability
::CAPABILITY
=> array(
93 'default' => PhabricatorPolicies
::POLICY_ADMIN
,
95 AlmanacCreateDevicesCapability
::CAPABILITY
=> array(
96 'default' => PhabricatorPolicies
::POLICY_ADMIN
,
98 AlmanacCreateNetworksCapability
::CAPABILITY
=> array(
99 'default' => PhabricatorPolicies
::POLICY_ADMIN
,
101 AlmanacCreateNamespacesCapability
::CAPABILITY
=> array(
102 'default' => PhabricatorPolicies
::POLICY_ADMIN
,
104 AlmanacManageClusterServicesCapability
::CAPABILITY
=> array(
105 'default' => PhabricatorPolicies
::POLICY_NOONE
,
106 'caption' => $cluster_caption,