mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(appinfo): Make sure screenshot, author and category are always arrays
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
5969b4bea8
commit
220bd3422f
6 changed files with 89 additions and 1 deletions
|
|
@ -190,6 +190,17 @@ class InfoParser {
|
|||
$array['dependencies']['backend'] = [$array['dependencies']['backend']];
|
||||
}
|
||||
|
||||
// Ensure some fields are always arrays
|
||||
if (isset($array['screenshot']) && !is_array($array['screenshot'])) {
|
||||
$array['screenshot'] = [$array['screenshot']];
|
||||
}
|
||||
if (isset($array['author']) && !is_array($array['author'])) {
|
||||
$array['author'] = [$array['author']];
|
||||
}
|
||||
if (isset($array['category']) && !is_array($array['category'])) {
|
||||
$array['category'] = [$array['category']];
|
||||
}
|
||||
|
||||
if ($this->cache !== null) {
|
||||
$this->cache->set($fileCacheKey, json_encode($array));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
"name": "Server-side Encryption",
|
||||
"description": "\n\tThis application encrypts all files accessed by ownCloud at rest, wherever they are stored. As an example, with this application enabled, external cloud based Amazon S3 storage will be encrypted, protecting this data on storage outside of the control of the Admin. When this application is enabled for the first time, all files are encrypted as users log in and are prompted for their password. The recommended recovery key option enables recovery of files in case the key is lost. \n\tNote that this app encrypts all files that are touched by ownCloud, so external storage providers and applications such as SharePoint will see new files encrypted when they are accessed. Encryption is based on AES 128 or 256 bit keys. More information is available in the Encryption documentation \n\t",
|
||||
"licence": "AGPL",
|
||||
"author": "Sam Tuke, Bjoern Schiessle, Florin Peter",
|
||||
"author": [
|
||||
"Sam Tuke, Bjoern Schiessle, Florin Peter"
|
||||
],
|
||||
"requiremin": "4",
|
||||
"shipped": "true",
|
||||
"documentation": {
|
||||
|
|
|
|||
50
tests/data/app/various-single-item.json
Normal file
50
tests/data/app/various-single-item.json
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"id": "notifications",
|
||||
"name": "Notifications",
|
||||
"description": "A single screenshot should be an array",
|
||||
"version": "1.0.0",
|
||||
"licence": "agpl",
|
||||
"author": [
|
||||
"Joas Schilling"
|
||||
],
|
||||
"dependencies": {
|
||||
"nextcloud": {
|
||||
"@attributes": {
|
||||
"min-version": "16",
|
||||
"max-version": "16"
|
||||
}
|
||||
},
|
||||
"backend": []
|
||||
},
|
||||
"screenshot": [
|
||||
"https://raw.githubusercontent.com/nextcloud/notifications/refs/heads/master/docs/screenshot.png"
|
||||
],
|
||||
"category": [
|
||||
"monitoring"
|
||||
],
|
||||
"info": [],
|
||||
"background-jobs": [],
|
||||
"activity": {
|
||||
"filters": [],
|
||||
"settings": [],
|
||||
"providers": []
|
||||
},
|
||||
"commands": [],
|
||||
"remote": [],
|
||||
"public": [],
|
||||
"repair-steps": {
|
||||
"install": [],
|
||||
"pre-migration": [],
|
||||
"post-migration": [],
|
||||
"live-migration": [],
|
||||
"uninstall": []
|
||||
},
|
||||
"settings": {
|
||||
"admin": [],
|
||||
"admin-section": [],
|
||||
"personal": [],
|
||||
"personal-section": []
|
||||
},
|
||||
"two-factor-providers": [],
|
||||
"types": []
|
||||
}
|
||||
2
tests/data/app/various-single-item.json.license
Normal file
2
tests/data/app/various-single-item.json.license
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
22
tests/data/app/various-single-item.xml
Normal file
22
tests/data/app/various-single-item.xml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
|
||||
<id>notifications</id>
|
||||
<name>Notifications</name>
|
||||
<description>A single screenshot should be an array</description>
|
||||
<version>1.0.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Joas Schilling</author>
|
||||
|
||||
<category>monitoring</category>
|
||||
|
||||
<screenshot>https://raw.githubusercontent.com/nextcloud/notifications/refs/heads/master/docs/screenshot.png</screenshot>
|
||||
|
||||
<dependencies>
|
||||
<nextcloud min-version="16" max-version="16"/>
|
||||
</dependencies>
|
||||
</info>
|
||||
|
|
@ -53,6 +53,7 @@ class InfoParserTest extends TestCase {
|
|||
[null, 'invalid-info.xml'],
|
||||
['navigation-one-item.json', 'navigation-one-item.xml'],
|
||||
['navigation-two-items.json', 'navigation-two-items.xml'],
|
||||
['various-single-item.json', 'various-single-item.xml'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue