Page MenuHomePhabricator

D11726.id28239.diff
No OneTemporary

D11726.id28239.diff

diff --git a/src/applications/config/check/PhabricatorAPCSetupCheck.php b/src/applications/config/check/PhabricatorAPCSetupCheck.php
--- a/src/applications/config/check/PhabricatorAPCSetupCheck.php
+++ b/src/applications/config/check/PhabricatorAPCSetupCheck.php
@@ -11,6 +11,7 @@
$this
->newIssue('extension.apc')
+ ->setGroup('php')
->setShortName(pht('APC'))
->setName(pht("PHP Extension 'APC' Not Installed"))
->setMessage($message)
@@ -27,6 +28,7 @@
$this
->newIssue('extension.apc.enabled')
+ ->setGroup('php')
->setShortName(pht('APC Disabled'))
->setName(pht("PHP Extension 'APC' Not Enabled"))
->setSummary($summary)
@@ -72,6 +74,7 @@
if ($issue_key !== null) {
$this
->newIssue($issue_key)
+ ->setGroup('base')
->setShortName($short)
->setName($long)
->setSummary($summary)
diff --git a/src/applications/config/check/PhabricatorAuthSetupCheck.php b/src/applications/config/check/PhabricatorAuthSetupCheck.php
--- a/src/applications/config/check/PhabricatorAuthSetupCheck.php
+++ b/src/applications/config/check/PhabricatorAuthSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorAuthSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'important';
+ }
+
protected function executeChecks() {
// NOTE: We're not actually building these providers. Building providers
// can require additional configuration to be present (e.g., to build
@@ -33,6 +37,7 @@
$this
->newIssue('auth.noproviders')
+ ->setGroup(self::getGroup())
->setShortName(pht('No Auth Providers'))
->setName(pht('No Authentication Providers Configured'))
->setMessage($message);
diff --git a/src/applications/config/check/PhabricatorBaseURISetupCheck.php b/src/applications/config/check/PhabricatorBaseURISetupCheck.php
--- a/src/applications/config/check/PhabricatorBaseURISetupCheck.php
+++ b/src/applications/config/check/PhabricatorBaseURISetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorBaseURISetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'important';
+ }
+
protected function executeChecks() {
$base_uri = PhabricatorEnv::getEnvConfig('phabricator.base-uri');
@@ -17,6 +21,7 @@
$this
->newIssue('config.phabricator.domain')
+ ->setGroup(self::getGroup())
->setShortName(pht('Dotless Domain'))
->setName(pht('No Dot Character in Domain'))
->setSummary($summary)
@@ -53,6 +58,7 @@
$this
->newIssue('config.phabricator.base-uri')
+ ->setGroup(self::getGroup())
->setShortName(pht('No Base URI'))
->setName(pht('Base URI Not Configured'))
->setSummary($summary)
diff --git a/src/applications/config/check/PhabricatorBinariesSetupCheck.php b/src/applications/config/check/PhabricatorBinariesSetupCheck.php
--- a/src/applications/config/check/PhabricatorBinariesSetupCheck.php
+++ b/src/applications/config/check/PhabricatorBinariesSetupCheck.php
@@ -2,6 +2,9 @@
final class PhabricatorBinariesSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
protected function executeChecks() {
@@ -41,6 +44,7 @@
if ($err) {
$this->newIssue('bin.diff.same')
->setName(pht("Unexpected 'diff' Behavior"))
+ ->setGroup(self::getGroup())
->setMessage(
pht(
"The 'diff' binary on this system has unexpected behavior: ".
@@ -53,6 +57,7 @@
if (!$err) {
$this->newIssue('bin.diff.diff')
->setName(pht("Unexpected 'diff' Behavior"))
+ ->setGroup(self::getGroup())
->setMessage(
pht(
"The 'diff' binary on this system has unexpected behavior: ".
@@ -179,6 +184,7 @@
$this->newIssue('bin.'.$bin)
->setShortName(pht("'%s' Missing", $bin))
+ ->setGroup(self::getGroup())
->setName(pht("Missing '%s' Binary", $bin))
->setSummary(
pht("The '%s' binary could not be located or executed.", $bin))
@@ -215,6 +221,7 @@
$this->newIssue('bin.'.$binary.'.unknown-version')
->setShortName(pht("Unknown '%s' Version", $binary))
+ ->setGroup(self::getGroup())
->setName(pht("Unknown '%s' Version", $binary))
->setSummary($summary)
->setMessage($message)
@@ -246,6 +253,7 @@
$this->newIssue('bin.'.$binary)
->setShortName(pht("Unsupported '%s' Version", $binary))
->setName(pht("Unsupported '%s' Version", $binary))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($summary.' '.$message);
break;
@@ -269,6 +277,7 @@
$binary);
$this->newIssue('bin.'.$binary)
->setShortName(pht("Unsupported '%s' Version", $binary))
+ ->setGroup(self::getGroup())
->setName(pht("Unsupported '%s' Version", $binary))
->setSummary($summary)
->setMessage($summary.' '.$message);
diff --git a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php
--- a/src/applications/config/check/PhabricatorDaemonsSetupCheck.php
+++ b/src/applications/config/check/PhabricatorDaemonsSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorDaemonsSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'important';
+ }
+
protected function executeChecks() {
$task_daemon = id(new PhabricatorDaemonLogQuery())
@@ -36,6 +40,7 @@
pht('Managing Daemons with phd')));
$this->newIssue('daemons.not-running')
+ ->setGroup(self::getGroup())
->setShortName(pht('Daemons Not Running'))
->setName(pht('Phabricator Daemons Are Not Running'))
->setSummary($summary)
@@ -77,6 +82,7 @@
phutil_tag('tt', array(), $phd_user));
$this->newIssue('daemons.run-as-different-user')
+ ->setGroup(self::getGroup())
->setName(pht('Daemons are running as the wrong user'))
->setSummary($summary)
->setMessage($message)
@@ -179,6 +185,7 @@
$this->newIssue('daemons.need-restarting')
->setName(pht('Daemons and Web Have Different Config'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addCommand('phabricator/ $ ./bin/phd restart');
diff --git a/src/applications/config/check/PhabricatorDatabaseSetupCheck.php b/src/applications/config/check/PhabricatorDatabaseSetupCheck.php
--- a/src/applications/config/check/PhabricatorDatabaseSetupCheck.php
+++ b/src/applications/config/check/PhabricatorDatabaseSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorDatabaseSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'important';
+ }
+
public function getExecutionOrder() {
// This must run after basic PHP checks, but before most other checks.
return 0.5;
@@ -39,6 +43,7 @@
$this->newIssue('mysql.connect')
->setName(pht('Can Not Connect to MySQL'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->setIsFatal(true)
->addRelatedPhabricatorConfig('mysql.host')
@@ -63,6 +68,7 @@
$this->newIssue('mysql.innodb')
->setName(pht('MySQL InnoDB Engine Not Available'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->setIsFatal(true);
return;
@@ -80,6 +86,7 @@
$this->newIssue('storage.upgrade')
->setName(pht('Setup MySQL Schema'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->setIsFatal(true)
->addCommand(hsprintf('<tt>phabricator/ $</tt> ./bin/storage upgrade'));
@@ -99,6 +106,7 @@
if ($diff) {
$this->newIssue('storage.patch')
->setName(pht('Upgrade MySQL Schema'))
+ ->setGroup(self::getGroup())
->setMessage(pht(
"Run the storage upgrade script to upgrade Phabricator's database ".
"schema. Missing patches:<br />%s<br />",
@@ -117,6 +125,7 @@
$this->newIssue('storage.mysql.hostport')
->setName(pht('Deprecated mysql.host Format'))
+ ->setGroup(self::getGroup())
->setSummary(
pht(
'Move port information from `mysql.host` to `mysql.port` in your '.
diff --git a/src/applications/config/check/PhabricatorElasticSetupCheck.php b/src/applications/config/check/PhabricatorElasticSetupCheck.php
--- a/src/applications/config/check/PhabricatorElasticSetupCheck.php
+++ b/src/applications/config/check/PhabricatorElasticSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorElasticSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
if (PhabricatorDefaultSearchEngineSelector::shouldUseElasticSearch()) {
$engine = PhabricatorSearchEngineSelector::newSelector()->newEngine();
@@ -16,6 +20,7 @@
$this
->newIssue('elastic.missing-index')
->setName(pht('Elasticsearch index Not Found'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addRelatedPhabricatorConfig('search.elastic.host');
@@ -31,6 +36,7 @@
$this
->newIssue('elastic.broken-index')
->setName(pht('Elasticsearch index Incorrect'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message);
}
diff --git a/src/applications/config/check/PhabricatorExtensionsSetupCheck.php b/src/applications/config/check/PhabricatorExtensionsSetupCheck.php
--- a/src/applications/config/check/PhabricatorExtensionsSetupCheck.php
+++ b/src/applications/config/check/PhabricatorExtensionsSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorExtensionsSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'php';
+ }
+
public function getExecutionOrder() {
return 0;
}
@@ -44,6 +48,7 @@
$issue = $this->newIssue('php.extensions')
->setIsFatal(true)
->setName(pht('Missing Required Extensions'))
+ ->setGroup(self::getGroup())
->setMessage($message);
foreach ($need as $extension) {
diff --git a/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php b/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
--- a/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
+++ b/src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorExtraConfigSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$ancient_config = self::getAncientConfig();
@@ -41,6 +45,7 @@
$issue = $this->newIssue('config.unknown.'.$key)
->setShortName($short)
+ ->setGroup(self::getGroup())
->setName($name)
->setSummary($summary);
diff --git a/src/applications/config/check/PhabricatorFileinfoSetupCheck.php b/src/applications/config/check/PhabricatorFileinfoSetupCheck.php
--- a/src/applications/config/check/PhabricatorFileinfoSetupCheck.php
+++ b/src/applications/config/check/PhabricatorFileinfoSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorFileinfoSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
if (!extension_loaded('fileinfo')) {
$message = pht(
@@ -11,6 +15,7 @@
$this->newIssue('extension.fileinfo')
->setName(pht("Missing 'fileinfo' Extension"))
+ ->setGroup(self::getGroup())
->setMessage($message);
}
}
diff --git a/src/applications/config/check/PhabricatorGDSetupCheck.php b/src/applications/config/check/PhabricatorGDSetupCheck.php
--- a/src/applications/config/check/PhabricatorGDSetupCheck.php
+++ b/src/applications/config/check/PhabricatorGDSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorGDSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
if (!extension_loaded('gd')) {
$message = pht(
diff --git a/src/applications/config/check/PhabricatorImagemagickSetupCheck.php b/src/applications/config/check/PhabricatorImagemagickSetupCheck.php
--- a/src/applications/config/check/PhabricatorImagemagickSetupCheck.php
+++ b/src/applications/config/check/PhabricatorImagemagickSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorImagemagickSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$imagemagick = PhabricatorEnv::getEnvConfig('files.enable-imagemagick');
if ($imagemagick) {
@@ -15,6 +19,7 @@
->setName(pht(
"'convert' binary not found or Imagemagick is not installed."))
->setMessage($message)
+ ->setGroup(self::getGroup())
->addRelatedPhabricatorConfig('files.enable-imagemagick')
->addPhabricatorConfig('environment.append-paths');
}
diff --git a/src/applications/config/check/PhabricatorInvalidConfigSetupCheck.php b/src/applications/config/check/PhabricatorInvalidConfigSetupCheck.php
--- a/src/applications/config/check/PhabricatorInvalidConfigSetupCheck.php
+++ b/src/applications/config/check/PhabricatorInvalidConfigSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorInvalidConfigSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$groups = PhabricatorApplicationConfigOptions::loadAll();
foreach ($groups as $group) {
@@ -14,6 +18,7 @@
} catch (PhabricatorConfigValidationException $ex) {
$this
->newIssue('config.invalid.'.$option->getKey())
+ ->setGroup(self::getGroup())
->setName(pht("Config '%s' Invalid", $option->getKey()))
->setMessage(
pht(
diff --git a/src/applications/config/check/PhabricatorMailSetupCheck.php b/src/applications/config/check/PhabricatorMailSetupCheck.php
--- a/src/applications/config/check/PhabricatorMailSetupCheck.php
+++ b/src/applications/config/check/PhabricatorMailSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorMailSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$adapter = PhabricatorEnv::getEnvConfig('metamta.mail-adapter');
@@ -16,6 +20,7 @@
$this->newIssue('config.metamta.mail-adapter')
->setShortName(pht('Missing Sendmail'))
+ ->setGroup(self::getGroup())
->setName(pht('No Sendmail Binary Found'))
->setMessage($message)
->addRelatedPhabricatorConfig('metamta.mail-adapter');
@@ -29,6 +34,7 @@
$this->newIssue('config.can-send-as-user')
->setName(pht("SES Can't Send As User"))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addRelatedPhabricatorConfig('metamta.mail-adapter')
->addPhabricatorConfig('metamta.can-send-as-user');
@@ -42,6 +48,7 @@
$this->newIssue('config.amazon-ses.access-key')
->setName(pht('Amazon SES Access Key Not Set'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addRelatedPhabricatorConfig('metamta.mail-adapter')
->addPhabricatorConfig('amazon-ses.access-key');
@@ -55,6 +62,7 @@
$this->newIssue('config.amazon-ses.secret-key')
->setName(pht('Amazon SES Secret Key Not Set'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addRelatedPhabricatorConfig('metamta.mail-adapter')
->addPhabricatorConfig('amazon-ses.secret-key');
@@ -72,6 +80,7 @@
$this->newIssue('config.metamta.default-address')
->setName(pht('No SES From Address Configured'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addRelatedPhabricatorConfig('metamta.mail-adapter')
->addPhabricatorConfig('metamta.default-address');
diff --git a/src/applications/config/check/PhabricatorMySQLSetupCheck.php b/src/applications/config/check/PhabricatorMySQLSetupCheck.php
--- a/src/applications/config/check/PhabricatorMySQLSetupCheck.php
+++ b/src/applications/config/check/PhabricatorMySQLSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorMySQLSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'mysql';
+ }
+
public static function loadRawConfigValue($key) {
$conn_raw = id(new PhabricatorUser())->establishConnection('w');
@@ -28,6 +32,7 @@
$this->newIssue('mysql.max_allowed_packet')
->setName(pht('Small MySQL "max_allowed_packet"'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addMySQLConfig('max_allowed_packet');
}
@@ -64,6 +69,7 @@
$this->newIssue('mysql.mode')
->setName(pht('MySQL STRICT_ALL_TABLES Mode Not Set'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('sql_mode');
@@ -103,6 +109,7 @@
$this->newIssue('mysql.mode')
->setName(pht('MySQL ONLY_FULL_GROUP_BY Mode Set'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('sql_mode');
@@ -127,6 +134,7 @@
$this->newIssue('mysql.ft_stopword_file')
->setName(pht('MySQL ft_stopword_file Not Supported'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('ft_stopword_file');
@@ -175,6 +183,7 @@
$this->newIssue('mysql.ft_stopword_file')
->setName(pht('MySQL is Using Default Stopword File'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('ft_stopword_file');
@@ -220,6 +229,7 @@
$this->newIssue('mysql.ft_min_word_len')
->setName(pht('MySQL is Using Default Minimum Word Length'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('ft_min_word_len');
@@ -255,6 +265,7 @@
$this->newIssue('mysql.ft_boolean_syntax')
->setName(pht('MySQL is Using the Default Boolean Syntax'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('ft_boolean_syntax');
@@ -306,6 +317,7 @@
$this->newIssue('mysql.innodb_buffer_pool_size')
->setName(pht('MySQL May Run Slowly'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addMySQLConfig('innodb_buffer_pool_size');
diff --git a/src/applications/config/check/PhabricatorPHPConfigSetupCheck.php b/src/applications/config/check/PhabricatorPHPConfigSetupCheck.php
--- a/src/applications/config/check/PhabricatorPHPConfigSetupCheck.php
+++ b/src/applications/config/check/PhabricatorPHPConfigSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorPHPConfigSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'php';
+ }
+
public function getExecutionOrder() {
return 0;
}
@@ -18,6 +22,7 @@
$this->newIssue('php.safe_mode')
->setIsFatal(true)
+ ->setGroup(self::getGroup())
->setName(pht('Disable PHP safe_mode'))
->setMessage($message)
->addPHPConfig('safe_mode');
@@ -68,6 +73,7 @@
$this->newIssue('php.'.$disable_option)
->setIsFatal(true)
+ ->setGroup(self::getGroup())
->setName(pht('Remove PHP %s', $disable_option))
->setMessage($message)
->addPHPConfig($disable_option);
@@ -87,6 +93,7 @@
$this->newIssue('php'.$overload_option)
->setIsFatal(true)
+ ->setGroup(self::getGroup())
->setName(pht('Disable PHP %s', $overload_option))
->setMessage($message)
->addPHPConfig($overload_option);
@@ -143,6 +150,7 @@
$issue = $this->newIssue('php.open_basedir')
->setName(pht('Disable PHP open_basedir'))
+ ->setGroup(self::getGroup())
->addPHPConfig('open_basedir');
if ($failures) {
diff --git a/src/applications/config/check/PhabricatorPathSetupCheck.php b/src/applications/config/check/PhabricatorPathSetupCheck.php
--- a/src/applications/config/check/PhabricatorPathSetupCheck.php
+++ b/src/applications/config/check/PhabricatorPathSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorPathSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
// NOTE: We've already appended `environment.append-paths`, so we don't
// need to explicitly check for it.
@@ -22,6 +26,7 @@
$this
->newIssue('config.environment.append-paths')
->setName(pht('$PATH Not Set'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addPhabricatorConfig('environment.append-paths');
@@ -101,6 +106,7 @@
$this
->newIssue('config.PATH.'.$digest)
->setName(pht('$PATH Component Unusable'))
+ ->setGroup(self::getGroup())
->setSummary(
pht(
'A component of the configured PATH can not be used by '.
diff --git a/src/applications/config/check/PhabricatorPygmentSetupCheck.php b/src/applications/config/check/PhabricatorPygmentSetupCheck.php
--- a/src/applications/config/check/PhabricatorPygmentSetupCheck.php
+++ b/src/applications/config/check/PhabricatorPygmentSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorPygmentSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$pygment = PhabricatorEnv::getEnvConfig('pygments.enabled');
@@ -19,6 +23,7 @@
$this
->newIssue('pygments.enabled')
->setName(pht('pygmentize Not Found'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addRelatedPhabricatorConfig('pygments.enabled')
@@ -40,6 +45,7 @@
$this
->newIssue('pygments.failed')
->setName(pht('pygmentize Not Working'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addRelatedPhabricatorConfig('pygments.enabled')
@@ -61,6 +67,7 @@
$this
->newIssue('pygments.noenabled')
->setName(pht('Install Pygments to Improve Syntax Highlighting'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addRelatedPhabricatorConfig('pygments.enabled');
diff --git a/src/applications/config/check/PhabricatorRepositoriesSetupCheck.php b/src/applications/config/check/PhabricatorRepositoriesSetupCheck.php
--- a/src/applications/config/check/PhabricatorRepositoriesSetupCheck.php
+++ b/src/applications/config/check/PhabricatorRepositoriesSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorRepositoriesSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
$cluster_services = id(new AlmanacServiceQuery())
@@ -30,6 +34,7 @@
'repository.default-local-path');
$this->newIssue('repository.default-local-path.empty')
->setName(pht('Missing Repository Local Path'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->addPhabricatorConfig('repository.default-local-path');
return;
@@ -52,6 +57,7 @@
$this->newIssue('repository.default-local-path.empty')
->setName(pht('Missing Repository Local Path'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addPhabricatorConfig('repository.default-local-path');
diff --git a/src/applications/config/check/PhabricatorSecuritySetupCheck.php b/src/applications/config/check/PhabricatorSecuritySetupCheck.php
--- a/src/applications/config/check/PhabricatorSecuritySetupCheck.php
+++ b/src/applications/config/check/PhabricatorSecuritySetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorSecuritySetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
protected function executeChecks() {
// This checks for a version of bash with the "Shellshock" vulnerability.
@@ -41,6 +45,7 @@
$this
->newIssue('security.shellshock')
->setName(pht('Severe Security Vulnerability: Unpatched Bash'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message);
}
@@ -52,6 +57,7 @@
$this->newIssue('security.'.$file_key)
->setName(pht('Alternate File Domain Not Configured'))
+ ->setGroup(self::getGroup())
->setSummary(
pht(
'Increase security (and improve performance) by configuring '.
diff --git a/src/applications/config/check/PhabricatorStorageSetupCheck.php b/src/applications/config/check/PhabricatorStorageSetupCheck.php
--- a/src/applications/config/check/PhabricatorStorageSetupCheck.php
+++ b/src/applications/config/check/PhabricatorStorageSetupCheck.php
@@ -2,6 +2,10 @@
final class PhabricatorStorageSetupCheck extends PhabricatorSetupCheck {
+ public function getGroup() {
+ return 'base';
+ }
+
/**
* @phutil-external-symbol class PhabricatorStartup
*/
@@ -17,6 +21,7 @@
->newIssue('config.storage.upload-size-limit')
->setShortName(pht('Upload Limit'))
->setName(pht('Upload Limit Not Yet Configured'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addPhabricatorConfig('storage.upload-size-limit');
} else {
@@ -67,6 +72,7 @@
$this
->newIssue('php.memory_limit.upload')
->setName(pht('Memory Limit Restricts File Uploads'))
+ ->setGroup(self::getGroup())
->setSummary($summary)
->setMessage($message)
->addPHPConfig('memory_limit')
@@ -96,6 +102,7 @@
->newIssue('config.storage.local-disk.path')
->setShortName(pht('Local Disk Storage'))
->setName(pht('Local Disk Storage Not Readable/Writable'))
+ ->setGroup(self::getGroup())
->setMessage($message)
->addPhabricatorConfig('storage.local-disk.path');
}
diff --git a/src/applications/config/check/PhabricatorTimezoneSetupCheck.php b/src/applications/config/check/PhabricatorTimezoneSetupCheck.php
--- a/src/applications/config/check/PhabricatorTimezoneSetupCheck.php
+++ b/src/applications/config/check/PhabricatorTimezoneSetupCheck.php
@@ -18,6 +18,7 @@
->newIssue('php.date.timezone')
->setShortName(pht('PHP Timezone'))
->setName(pht('PHP Timezone Invalid'))
+ ->setGroup('php')
->setMessage($message)
->addPHPConfig('date.timezone');
}
@@ -43,6 +44,7 @@
->newIssue('config.timezone')
->setShortName(pht('Timezone'))
->setName(pht('Server Timezone Not Configured'))
+ ->setGroup('base')
->setSummary($summary)
->setMessage($message)
->addPHPConfig('date.timezone')
diff --git a/src/applications/config/controller/PhabricatorConfigIssueListController.php b/src/applications/config/controller/PhabricatorConfigIssueListController.php
--- a/src/applications/config/controller/PhabricatorConfigIssueListController.php
+++ b/src/applications/config/controller/PhabricatorConfigIssueListController.php
@@ -14,17 +14,33 @@
PhabricatorSetupCheck::setOpenSetupIssueCount(
PhabricatorSetupCheck::countUnignoredIssues($issues));
- $list = $this->buildIssueList($issues);
- $list->setNoDataString(pht('There are no open setup issues.'));
- $list->setStackable(true);
+ $important = $this->buildIssueList($issues, 'important');
+ $php = $this->buildIssueList($issues, 'php');
+ $mysql = $this->buildIssueList($issues, 'mysql');
+ $base = $this->buildIssueList($issues, 'base');
+
+ $box1 = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Important Setup Issues'))
+ ->appendChild($important);
+
+ $box2 = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('PHP Setup Issues'))
+ ->appendChild($php);
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Open Phabricator Setup Issues'))
- ->appendChild($list);
+ $box3 = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('MySQL Setup Issues'))
+ ->appendChild($mysql);
+
+ $box4 = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Base Setup Issues'))
+ ->appendChild($base);
$nav->appendChild(
array(
- $box,
+ $box1,
+ $box2,
+ $box3,
+ $box4,
));
$title = pht('Setup Issues');
@@ -42,25 +58,27 @@
));
}
- private function buildIssueList(array $issues) {
+ private function buildIssueList(array $issues, $group) {
assert_instances_of($issues, 'PhabricatorSetupIssue');
$list = new PHUIObjectItemListView();
$ignored_items = array();
foreach ($issues as $issue) {
+ if ($issue->getGroup() == $group) {
$href = $this->getApplicationURI('/issue/'.$issue->getIssueKey().'/');
$item = id(new PHUIObjectItemView())
->setHeader($issue->getName())
->setHref($href)
->addAttribute($issue->getSummary());
- if (!$issue->getIsIgnored()) {
- $item->setBarColor('yellow');
- $list->addItem($item);
- } else {
- $item->addIcon('fa-eye-slash', pht('Ignored'));
- $item->setDisabled(true);
- $item->setBarColor('none');
- $ignored_items[] = $item;
+ if (!$issue->getIsIgnored()) {
+ $item->setBarColor('yellow');
+ $list->addItem($item);
+ } else {
+ $item->addIcon('fa-eye-slash', pht('Ignored'));
+ $item->setDisabled(true);
+ $item->setBarColor('none');
+ $ignored_items[] = $item;
+ }
}
}
@@ -68,6 +86,9 @@
$list->addItem($item);
}
+ $list->setNoDataString(pht('There are no open setup issues.'));
+ $list->setStackable(true);
+
return $list;
}
diff --git a/src/applications/config/issue/PhabricatorSetupIssue.php b/src/applications/config/issue/PhabricatorSetupIssue.php
--- a/src/applications/config/issue/PhabricatorSetupIssue.php
+++ b/src/applications/config/issue/PhabricatorSetupIssue.php
@@ -8,6 +8,7 @@
private $isFatal;
private $summary;
private $shortName;
+ private $group;
private $isIgnored = false;
private $phpExtensions = array();
@@ -40,6 +41,19 @@
return $this->shortName;
}
+ public function setGroup($group) {
+ $this->group = $group;
+ return $this;
+ }
+
+ public function getGroup() {
+ if ($this->group) {
+ return $this->group;
+ } else {
+ return 'base';
+ }
+ }
+
public function setName($name) {
$this->name = $name;
return $this;

File Metadata

Mime Type
text/plain
Expires
Mar 18 2025, 6:27 AM (5 w, 2 d ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/rm/jk/ubgftrcol2qytt4t
Default Alt Text
D11726.id28239.diff (31 KB)

Event Timeline