aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2024-03-28 16:04:05 +0100
committerGitHub <noreply@github.com>2024-03-28 16:04:05 +0100
commit646cba4835a668ddd416a57de21a7334e55e1f68 (patch)
treeef1e2d130dabf4a2046eb25928f098f0ff332e55
parent1c4920d7db38f93b1e554069903632562a8c9a85 (diff)
parent1ec9961fb52327caf815af85ec1321aef23fefeb (diff)
downloadnextcloud-server-646cba4835a668ddd416a57de21a7334e55e1f68.tar.gz
nextcloud-server-646cba4835a668ddd416a57de21a7334e55e1f68.zip
Merge pull request #44480 from nextcloud/backport/44276/stable21
[stable21] fix(config): Make sure user keys are strings
-rw-r--r--lib/private/AllConfig.php2
-rw-r--r--tests/lib/AllConfigTest.php25
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php
index 36f5f2cd40a..1a3d032a61e 100644
--- a/lib/private/AllConfig.php
+++ b/lib/private/AllConfig.php
@@ -334,7 +334,7 @@ class AllConfig implements \OCP\IConfig {
public function getUserKeys($userId, $appName) {
$data = $this->getUserValues($userId);
if (isset($data[$appName])) {
- return array_keys($data[$appName]);
+ return array_map('strval', array_keys($data[$appName]));
} else {
return [];
}
diff --git a/tests/lib/AllConfigTest.php b/tests/lib/AllConfigTest.php
index 9daa7c9be9c..71def607ac7 100644
--- a/tests/lib/AllConfigTest.php
+++ b/tests/lib/AllConfigTest.php
@@ -276,6 +276,31 @@ class AllConfigTest extends \Test\TestCase {
$this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
}
+ public function testGetUserKeysAllInts() {
+ $config = $this->getConfig();
+
+ // preparation - add something to the database
+ $data = [
+ ['userFetch', 'appFetch1', '123', 'value'],
+ ['userFetch', 'appFetch1', '456', 'value'],
+ ];
+ foreach ($data as $entry) {
+ $this->connection->executeUpdate(
+ 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' .
+ '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)',
+ $entry
+ );
+ }
+
+ $value = $config->getUserKeys('userFetch', 'appFetch1');
+ $this->assertEquals(['123', '456'], $value);
+ $this->assertIsString($value[0]);
+ $this->assertIsString($value[1]);
+
+ // cleanup
+ $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`');
+ }
+
public function testGetUserValueDefault() {
$config = $this->getConfig();