Merge pull request #44181 from nextcloud/backport/43334/stable27

[stable27] fix(settings): `posix_getpwuid` can return `false` which should not be accessed like an array
This commit is contained in:
Ferdinand Thiessen 2024-03-14 13:56:58 +01:00 committed by GitHub
commit 0a4b32811c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -67,13 +67,17 @@ class Server implements IDelegatedSettings {
* @return TemplateResponse
*/
public function getForm() {
$ownerConfigFile = fileowner(\OC::$configDir . 'config.php');
$cliBasedCronPossible = function_exists('posix_getpwuid') && $ownerConfigFile !== false;
$cliBasedCronUser = $cliBasedCronPossible ? (posix_getpwuid($ownerConfigFile)['name'] ?? '') : '';
// Background jobs
$this->initialStateService->provideInitialState('backgroundJobsMode', $this->config->getAppValue('core', 'backgroundjobs_mode', 'ajax'));
$this->initialStateService->provideInitialState('lastCron', (int)$this->config->getAppValue('core', 'lastcron', '0'));
$this->initialStateService->provideInitialState('cronMaxAge', $this->cronMaxAge());
$this->initialStateService->provideInitialState('cronErrors', $this->config->getAppValue('core', 'cronErrors'));
$this->initialStateService->provideInitialState('cliBasedCronPossible', function_exists('posix_getpwuid'));
$this->initialStateService->provideInitialState('cliBasedCronUser', function_exists('posix_getpwuid') ? posix_getpwuid(fileowner(\OC::$configDir . 'config.php'))['name'] : '');
$this->initialStateService->provideInitialState('cliBasedCronPossible', $cliBasedCronPossible);
$this->initialStateService->provideInitialState('cliBasedCronUser', $cliBasedCronUser);
$this->initialStateService->provideInitialState('backgroundJobsDocUrl', $this->urlGenerator->linkToDocs('admin-background-jobs'));
// Profile page