Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
fix(config): fix tests+psalm
Signed-off-by: Maxence Lange <[email protected]>
  • Loading branch information
ArtificialOwl committed Aug 8, 2025
commit bbc9ed138c9b1b1799528bc1ef48822c4c13bd32
1 change: 1 addition & 0 deletions lib/composer/composer/autoload_classmap.php
Original file line number Diff line number Diff line change
Expand Up @@ -1219,6 +1219,7 @@
'OC\\Comments\\ManagerFactory' => $baseDir . '/lib/private/Comments/ManagerFactory.php',
'OC\\Config' => $baseDir . '/lib/private/Config.php',
'OC\\Config\\ConfigManager' => $baseDir . '/lib/private/Config/ConfigManager.php',
'OC\\Config\\PresetManager' => $baseDir . '/lib/private/Config/PresetManager.php',
'OC\\Config\\UserConfig' => $baseDir . '/lib/private/Config/UserConfig.php',
'OC\\Console\\Application' => $baseDir . '/lib/private/Console/Application.php',
'OC\\Console\\TimestampFormatter' => $baseDir . '/lib/private/Console/TimestampFormatter.php',
Expand Down
1 change: 1 addition & 0 deletions lib/composer/composer/autoload_static.php
Original file line number Diff line number Diff line change
Expand Up @@ -1260,6 +1260,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OC\\Comments\\ManagerFactory' => __DIR__ . '/../../..' . '/lib/private/Comments/ManagerFactory.php',
'OC\\Config' => __DIR__ . '/../../..' . '/lib/private/Config.php',
'OC\\Config\\ConfigManager' => __DIR__ . '/../../..' . '/lib/private/Config/ConfigManager.php',
'OC\\Config\\PresetManager' => __DIR__ . '/../../..' . '/lib/private/Config/PresetManager.php',
'OC\\Config\\UserConfig' => __DIR__ . '/../../..' . '/lib/private/Config/UserConfig.php',
'OC\\Console\\Application' => __DIR__ . '/../../..' . '/lib/private/Console/Application.php',
'OC\\Console\\TimestampFormatter' => __DIR__ . '/../../..' . '/lib/private/Console/TimestampFormatter.php',
Expand Down
4 changes: 1 addition & 3 deletions lib/private/AppConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
use OC\Config\PresetManager;
use OCP\Config\Lexicon\Entry;
use OCP\Config\Lexicon\ILexicon;
use OCP\Config\Lexicon\Preset;
use OCP\Config\Lexicon\Strictness;
use OCP\Config\ValueType;
use OCP\DB\Exception as DBException;
Expand All @@ -28,7 +27,6 @@
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Security\ICrypto;
use OCP\Server;
use Psr\Log\LoggerInterface;

/**
Expand Down Expand Up @@ -1136,7 +1134,7 @@ public function getKeyDetails(string $app, string $key): array {
]);
}

return array_filter($details, static fn($v): bool => ($v !== null));
return array_filter($details, static fn ($v): bool => ($v !== null));
}

/**
Expand Down
2 changes: 0 additions & 2 deletions lib/private/Config/ConfigManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,8 @@
use OCP\Config\Exceptions\TypeConflictException;
use OCP\Config\IUserConfig;
use OCP\Config\Lexicon\Entry;
use OCP\Config\Lexicon\Preset;
use OCP\Config\ValueType;
use OCP\IAppConfig;
use OCP\IConfig;
use OCP\Server;
use Psr\Log\LoggerInterface;

Expand Down
5 changes: 3 additions & 2 deletions lib/private/Config/PresetManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

/**
* tools to maintains configurations
*
* @since 32.0.0
*/
class PresetManager {
private const PRESET_CONFIGKEY = 'config_preset';
Expand All @@ -37,6 +35,9 @@ public function setLexiconPreset(Preset $preset): void {
$this->configManager->clearConfigCaches();
}

/**
* returns currently selected Preset
*/
public function getLexiconPreset(): Preset {
if ($this->configLexiconPreset === null) {
$this->configLexiconPreset = Preset::tryFrom($this->config->getSystemValueInt(self::PRESET_CONFIGKEY, 0)) ?? Preset::NONE;
Expand Down
2 changes: 0 additions & 2 deletions lib/private/Config/UserConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
use OCP\Config\IUserConfig;
use OCP\Config\Lexicon\Entry;
use OCP\Config\Lexicon\ILexicon;
use OCP\Config\Lexicon\Preset;
use OCP\Config\Lexicon\Strictness;
use OCP\Config\ValueType;
use OCP\DB\Exception as DBException;
Expand All @@ -27,7 +26,6 @@
use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Security\ICrypto;
use OCP\Server;
use Psr\Log\LoggerInterface;

/**
Expand Down
29 changes: 15 additions & 14 deletions lib/private/Profile/ProfileManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -327,22 +327,23 @@ private function getDefaultProfileConfig(IUser $targetUser, ?IUser $visitingUser

/**
* modify property visibility, based on current Preset
*
* @psalm-suppress UnhandledMatchCondition if conditions are not met, we do not change $visibility
*/
private function applyDefaultProfilePreset(string $property, string &$visibility): void {
$overwrite = match($this->presetManager->getLexiconPreset()) {
Preset::SHARED, Preset::SCHOOL, Preset::UNIVERSITY => match($property) {
IAccountManager::PROPERTY_ADDRESS, IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_HIDE,
},
Preset::PRIVATE, Preset::FAMILY, Preset::CLUB => match($property) {
IAccountManager::PROPERTY_EMAIL => self::VISIBILITY_SHOW,
},
Preset::SMALL, Preset::MEDIUM, Preset::LARGE => match($property) {
IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_SHOW,
},
default => null,
};

if ($overwrite === null) {
try {
$overwrite = match ($this->presetManager->getLexiconPreset()) {
Preset::SHARED, Preset::SCHOOL, Preset::UNIVERSITY => match ($property) {
IAccountManager::PROPERTY_ADDRESS, IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_HIDE,
},
Preset::PRIVATE, Preset::FAMILY, Preset::CLUB => match ($property) {
IAccountManager::PROPERTY_EMAIL => self::VISIBILITY_SHOW,
},
Preset::SMALL, Preset::MEDIUM, Preset::LARGE => match ($property) {
IAccountManager::PROPERTY_EMAIL, IAccountManager::PROPERTY_PHONE => self::VISIBILITY_SHOW,
},
};
} catch (\UnhandledMatchError) {
return;
}

Expand Down
8 changes: 8 additions & 0 deletions tests/lib/AppConfigTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

use InvalidArgumentException;
use OC\AppConfig;
use OC\Config\ConfigManager;
use OC\Config\PresetManager;
use OCP\Exceptions\AppConfigTypeConflictException;
use OCP\Exceptions\AppConfigUnknownKeyException;
use OCP\IAppConfig;
Expand All @@ -29,6 +31,8 @@ class AppConfigTest extends TestCase {
protected IAppConfig $appConfig;
protected IDBConnection $connection;
private IConfig $config;
private ConfigManager $configManager;
private PresetManager $presetManager;
private LoggerInterface $logger;
private ICrypto $crypto;

Expand Down Expand Up @@ -99,6 +103,8 @@ protected function setUp(): void {

$this->connection = Server::get(IDBConnection::class);
$this->config = Server::get(IConfig::class);
$this->configManager = Server::get(ConfigManager::class);
$this->presetManager = Server::get(PresetManager::class);
$this->logger = Server::get(LoggerInterface::class);
$this->crypto = Server::get(ICrypto::class);

Expand Down Expand Up @@ -190,6 +196,8 @@ private function generateAppConfig(bool $preLoading = true): IAppConfig {
$config = new AppConfig(
$this->connection,
$this->config,
$this->configManager,
$this->presetManager,
$this->logger,
$this->crypto,
);
Expand Down
15 changes: 9 additions & 6 deletions tests/lib/Config/LexiconTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use OC\AppConfig;
use OC\AppFramework\Bootstrap\Coordinator;
use OC\Config\ConfigManager;
use OC\Config\PresetManager;
use OCP\Config\Exceptions\TypeConflictException;
use OCP\Config\Exceptions\UnknownKeyException;
use OCP\Config\IUserConfig;
Expand All @@ -32,6 +33,7 @@ class LexiconTest extends TestCase {
private IAppConfig $appConfig;
private IUserConfig $userConfig;
private ConfigManager $configManager;
private PresetManager $presetManager;

protected function setUp(): void {
parent::setUp();
Expand All @@ -45,6 +47,7 @@ protected function setUp(): void {
$this->appConfig = Server::get(IAppConfig::class);
$this->userConfig = Server::get(IUserConfig::class);
$this->configManager = Server::get(ConfigManager::class);
$this->presetManager = Server::get(PresetManager::class);
}

protected function tearDown(): void {
Expand Down Expand Up @@ -206,26 +209,26 @@ public function testAppConfigLexiconRenameInvertBoolean() {
}

public function testAppConfigLexiconPreset() {
$this->configManager->setLexiconPreset(Preset::FAMILY);
$this->presetManager->setLexiconPreset(Preset::FAMILY);
$this->assertSame('family', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
}

public function testAppConfigLexiconPresets() {
$this->configManager->setLexiconPreset(Preset::MEDIUM);
$this->presetManager->setLexiconPreset(Preset::MEDIUM);
$this->assertSame('club+medium', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
$this->configManager->setLexiconPreset(Preset::FAMILY);
$this->presetManager->setLexiconPreset(Preset::FAMILY);
$this->assertSame('family', $this->appConfig->getValueString(TestLexicon_E::APPID, 'key3'));
}

public function testUserConfigLexiconPreset() {
$this->configManager->setLexiconPreset(Preset::FAMILY);
$this->presetManager->setLexiconPreset(Preset::FAMILY);
$this->assertSame('family', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
}

public function testUserConfigLexiconPresets() {
$this->configManager->setLexiconPreset(Preset::MEDIUM);
$this->presetManager->setLexiconPreset(Preset::MEDIUM);
$this->assertSame('club+medium', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
$this->configManager->setLexiconPreset(Preset::FAMILY);
$this->presetManager->setLexiconPreset(Preset::FAMILY);
$this->assertSame('family', $this->userConfig->getValueString('user1', TestLexicon_E::APPID, 'key3'));
}
}
8 changes: 8 additions & 0 deletions tests/lib/Config/UserConfigTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
*/
namespace Test\lib\Config;

use OC\Config\ConfigManager;
use OC\Config\PresetManager;
use OC\Config\UserConfig;
use OCP\Config\Exceptions\TypeConflictException;
use OCP\Config\Exceptions\UnknownKeyException;
Expand All @@ -29,6 +31,8 @@
class UserConfigTest extends TestCase {
protected IDBConnection $connection;
private IConfig $config;
private ConfigManager $configManager;
private PresetManager $presetManager;
private LoggerInterface $logger;
private ICrypto $crypto;
private array $originalPreferences;
Expand Down Expand Up @@ -173,6 +177,8 @@ protected function setUp(): void {

$this->connection = Server::get(IDBConnection::class);
$this->config = Server::get(IConfig::class);
$this->configManager = Server::get(ConfigManager::class);
$this->presetManager = Server::get(PresetManager::class);
$this->logger = Server::get(LoggerInterface::class);
$this->crypto = Server::get(ICrypto::class);

Expand Down Expand Up @@ -282,6 +288,8 @@ private function generateUserConfig(array $preLoading = []): IUserConfig {
$userConfig = new UserConfig(
$this->connection,
$this->config,
$this->configManager,
$this->presetManager,
$this->logger,
$this->crypto,
);
Expand Down
Loading