diff --git a/php/src/Container/CommunityContainer.php b/php/src/Container/CommunityContainer.php deleted file mode 100644 index 8f7c2ffd..00000000 --- a/php/src/Container/CommunityContainer.php +++ /dev/null @@ -1,12 +0,0 @@ -getParsedBody()['community-form'])) { - $this->configurationManager->SetEnabledCommunityContainers($request->getParsedBody()['enabled-community'] ?? []); + $cc = $this->configurationManager->listAvailableCommunityContainers(); + $enabledCC = []; + /** + * @psalm-suppress PossiblyNullIterator + */ + foreach ($request->getParsedBody() as $item) { + if (array_key_exists($item , $cc)) { + $enabledCC[] = $item; + } + } + $this->configurationManager->SetEnabledCommunityContainers($enabledCC); } if (isset($request->getParsedBody()['delete_collabora_dictionaries'])) { diff --git a/php/src/Data/ConfigurationManager.php b/php/src/Data/ConfigurationManager.php index dd2a95cd..d4af26b1 100644 --- a/php/src/Data/ConfigurationManager.php +++ b/php/src/Data/ConfigurationManager.php @@ -3,7 +3,6 @@ namespace AIO\Data; use AIO\Auth\PasswordGenerator; -use AIO\Container\CommunityContainer; use AIO\Controller\DockerController; class ConfigurationManager @@ -1018,7 +1017,6 @@ class ConfigurationManager } - /** @return list */ public function listAvailableCommunityContainers() : array { $cc = []; $dir = scandir(DataConst::GetCommunityContainersDirectory()); @@ -1036,15 +1034,16 @@ class ConfigurationManager apcu_add($filePath, $fileContents); } } - $json = is_string($fileContents) ? json_decode($fileContents) : false; + $json = is_string($fileContents) ? json_decode($fileContents, true) : false; if(is_array($json) && is_array($json['aio_services_v1'])) { foreach ($json['aio_services_v1'] as $service) { $documentation = is_string($service['documentation']) ? $service['documentation'] : ''; if (is_string($service['display_name'])) { - $cc[] = new CommunityContainer( - $id, - $service['display_name'], - $documentation); + $cc[$id] = [ + 'id' => $id, + 'name' => $service['display_name'], + 'documentation' => $documentation + ]; } break; } diff --git a/php/templates/includes/community-containers.twig b/php/templates/includes/community-containers.twig index dd67027c..f74e3756 100644 --- a/php/templates/includes/community-containers.twig +++ b/php/templates/includes/community-containers.twig @@ -16,7 +16,7 @@