Skip to content

Commit b0d30d4

Browse files
committed
handle AppConfigTypeConflictException when getting/setting allow_multiple_user_backends
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
1 parent 0c15a8f commit b0d30d4

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

lib/Service/SettingsService.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,34 @@
1111
namespace OCA\UserOIDC\Service;
1212

1313
use OCA\UserOIDC\AppInfo\Application;
14+
use OCP\Exceptions\AppConfigTypeConflictException;
1415
use OCP\IAppConfig;
16+
use Psr\Log\LoggerInterface;
1517

1618
class SettingsService {
1719

1820
public function __construct(
1921
private IAppConfig $appConfig,
22+
private LoggerInterface $logger,
2023
) {
2124
}
2225

2326
public function getAllowMultipleUserBackEnds(): bool {
24-
return $this->appConfig->getValueString(Application::APP_ID, 'allow_multiple_user_backends', '1') === '1';
27+
try {
28+
return $this->appConfig->getValueString(Application::APP_ID, 'allow_multiple_user_backends', '1') === '1';
29+
} catch (AppConfigTypeConflictException $e) {
30+
$this->logger->warning('Incorrect app config type when getting "allow_multiple_user_backends"', ['exception' => $e]);
31+
return true;
32+
}
2533
}
2634

2735
public function setAllowMultipleUserBackEnds(bool $value): void {
28-
$this->appConfig->setValueString(Application::APP_ID, 'allow_multiple_user_backends', $value ? '1' : '0');
36+
try {
37+
$this->appConfig->setValueString(Application::APP_ID, 'allow_multiple_user_backends', $value ? '1' : '0');
38+
} catch (AppConfigTypeConflictException $e) {
39+
$this->logger->warning('Incorrect app config type when setting "allow_multiple_user_backends"', ['exception' => $e]);
40+
$this->appConfig->deleteKey(Application::APP_ID, 'allow_multiple_user_backends');
41+
$this->appConfig->setValueString(Application::APP_ID, 'allow_multiple_user_backends', $value ? '1' : '0');
42+
}
2943
}
3044
}

0 commit comments

Comments
 (0)