99namespace OC \Core \Command \Config \App ;
1010
1111use OC \AppConfig ;
12- use OCP \Exceptions \AppConfigIncorrectTypeException ;
1312use OCP \Exceptions \AppConfigUnknownKeyException ;
1413use OCP \IAppConfig ;
1514use Symfony \Component \Console \Helper \QuestionHelper ;
@@ -161,7 +160,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int
161160 }
162161
163162 $ value = (string )$ input ->getOption ('value ' );
164-
165163 switch ($ type ) {
166164 case IAppConfig::VALUE_MIXED :
167165 $ updated = $ this ->appConfig ->setValueMixed ($ appName , $ configName , $ value , $ lazy , $ sensitive );
@@ -172,34 +170,19 @@ protected function execute(InputInterface $input, OutputInterface $output): int
172170 break ;
173171
174172 case IAppConfig::VALUE_INT :
175- if ($ value !== ((string )((int )$ value ))) {
176- throw new AppConfigIncorrectTypeException ('Value is not an integer ' );
177- }
178- $ updated = $ this ->appConfig ->setValueInt ($ appName , $ configName , (int )$ value , $ lazy , $ sensitive );
173+ $ updated = $ this ->appConfig ->setValueInt ($ appName , $ configName , $ this ->configManager ->convertToInt ($ value ), $ lazy , $ sensitive );
179174 break ;
180175
181176 case IAppConfig::VALUE_FLOAT :
182- if ($ value !== ((string )((float )$ value ))) {
183- throw new AppConfigIncorrectTypeException ('Value is not a float ' );
184- }
185- $ updated = $ this ->appConfig ->setValueFloat ($ appName , $ configName , (float )$ value , $ lazy , $ sensitive );
177+ $ updated = $ this ->appConfig ->setValueFloat ($ appName , $ configName , $ this ->configManager ->convertToFloat ($ value ), $ lazy , $ sensitive );
186178 break ;
187179
188180 case IAppConfig::VALUE_BOOL :
189- if (in_array (strtolower ($ value ), ['true ' , '1 ' , 'on ' , 'yes ' ])) {
190- $ valueBool = true ;
191- } elseif (in_array (strtolower ($ value ), ['false ' , '0 ' , 'off ' , 'no ' ])) {
192- $ valueBool = false ;
193- } else {
194- throw new AppConfigIncorrectTypeException ('Value is not a boolean, please use \'true \' or \'false \'' );
195- }
196- $ updated = $ this ->appConfig ->setValueBool ($ appName , $ configName , $ valueBool , $ lazy );
181+ $ updated = $ this ->appConfig ->setValueBool ($ appName , $ configName , $ this ->configManager ->convertToBool ($ value ), $ lazy );
197182 break ;
198183
199184 case IAppConfig::VALUE_ARRAY :
200- $ valueArray = json_decode ($ value , true , flags: JSON_THROW_ON_ERROR );
201- $ valueArray = (is_array ($ valueArray )) ? $ valueArray : throw new AppConfigIncorrectTypeException ('Value is not an array ' );
202- $ updated = $ this ->appConfig ->setValueArray ($ appName , $ configName , $ valueArray , $ lazy , $ sensitive );
185+ $ updated = $ this ->appConfig ->setValueArray ($ appName , $ configName , $ this ->configManager ->convertToArray ($ value ), $ lazy , $ sensitive );
203186 break ;
204187 }
205188 }
0 commit comments