diff --git a/core/Command/SetupChecks.php b/core/Command/SetupChecks.php index ed0d22bdfc04c..d4187ca90c32b 100644 --- a/core/Command/SetupChecks.php +++ b/core/Command/SetupChecks.php @@ -55,7 +55,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int default: foreach ($results as $category => $checks) { $output->writeln("\t{$category}:"); - foreach ($checks as $title => $check) { + foreach ($checks as $check) { $styleTag = match ($check->getSeverity()) { 'success' => 'info', 'error' => 'error', @@ -74,7 +74,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int "\t\t". ($styleTag !== null ? "<{$styleTag}>" : ''). "{$emoji} ". - $title. + $check->getName(). ($description !== null ? ': '.$description : ''). ($styleTag !== null ? "" : ''), $verbosity @@ -83,7 +83,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int } } foreach ($results as $category => $checks) { - foreach ($checks as $title => $check) { + foreach ($checks as $check) { if ($check->getSeverity() !== 'success') { return self::FAILURE; } diff --git a/lib/private/SetupCheck/SetupCheckManager.php b/lib/private/SetupCheck/SetupCheckManager.php index f9e67772019ac..b8b6cfa11e7d9 100644 --- a/lib/private/SetupCheck/SetupCheckManager.php +++ b/lib/private/SetupCheck/SetupCheckManager.php @@ -47,9 +47,10 @@ public function runAll(): array { $setupCheckObject = Server::get($setupCheck->getService()); $this->logger->debug('Running check '.get_class($setupCheckObject)); $setupResult = $setupCheckObject->run(); + $setupResult->setName($setupCheckObject->getName()); $category = $setupCheckObject->getCategory(); $results[$category] ??= []; - $results[$category][$setupCheckObject->getName()] = $setupResult; + $results[$category][$setupCheckObject::class] = $setupResult; } return $results; } diff --git a/lib/public/SetupCheck/ISetupCheck.php b/lib/public/SetupCheck/ISetupCheck.php index 77eeaea4df141..96eb6ddd7daca 100644 --- a/lib/public/SetupCheck/ISetupCheck.php +++ b/lib/public/SetupCheck/ISetupCheck.php @@ -36,11 +36,13 @@ interface ISetupCheck { /** * @since 28.0.0 + * @return string Category id, one of security/system/accounts, or a custom one which will be merged in system */ public function getCategory(): string; /** * @since 28.0.0 + * @return string Translated name to display to the user */ public function getName(): string; diff --git a/lib/public/SetupCheck/SetupResult.php b/lib/public/SetupCheck/SetupResult.php index 27026f8281506..e4a7744178a24 100644 --- a/lib/public/SetupCheck/SetupResult.php +++ b/lib/public/SetupCheck/SetupResult.php @@ -37,6 +37,11 @@ class SetupResult implements \JsonSerializable { public const WARNING = 'warning'; public const ERROR = 'error'; + /** + * @param string $name Translated name to display to the user + */ + private ?string $name = null; + /** * @brief Private constructor, use success()/info()/warning()/error() instead * @param self::SUCCESS|self::INFO|self::WARNING|self::ERROR $severity @@ -51,6 +56,8 @@ private function __construct( /** * @brief Create a success result object + * @param ?string $description Translated detailed description to display to the user + * @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project * @since 28.0.0 */ public static function success(?string $description = null, ?string $linkToDoc = null): self { @@ -59,6 +66,8 @@ public static function success(?string $description = null, ?string $linkToDoc = /** * @brief Create an info result object + * @param ?string $description Translated detailed description to display to the user + * @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project * @since 28.0.0 */ public static function info(?string $description = null, ?string $linkToDoc = null): self { @@ -67,6 +76,8 @@ public static function info(?string $description = null, ?string $linkToDoc = nu /** * @brief Create a warning result object + * @param ?string $description Translated detailed description to display to the user + * @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project * @since 28.0.0 */ public static function warning(?string $description = null, ?string $linkToDoc = null): self { @@ -75,6 +86,8 @@ public static function warning(?string $description = null, ?string $linkToDoc = /** * @brief Create an error result object + * @param ?string $description Translated detailed description to display to the user + * @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project * @since 28.0.0 */ public static function error(?string $description = null, ?string $linkToDoc = null): self { @@ -100,6 +113,24 @@ public function getDescription(): ?string { return $this->description; } + /** + * @brief Get the name for the setup check + * + * @since 28.0.0 + */ + public function getName(): ?string { + return $this->name; + } + + /** + * @brief Set the name from the setup check + * + * @since 28.0.0 + */ + public function setName(string $name): void { + $this->name = $name; + } + /** * @brief Get a link to the doc for the explanation. * @@ -116,6 +147,7 @@ public function getLinkToDoc(): ?string { */ public function jsonSerialize(): array { return [ + 'name' => $this->name, 'severity' => $this->severity, 'description' => $this->description, 'linkToDoc' => $this->linkToDoc,