mirror of
https://github.com/nextcloud/all-in-one.git
synced 2025-12-21 15:06:50 +00:00
Typesafe ConfigurationController.php
Signed-off-by: Jean-Yves <7360784+docjyJ@users.noreply.github.com>
This commit is contained in:
parent
890bcc9434
commit
d674ba4f6e
1 changed files with 45 additions and 104 deletions
|
|
@ -21,123 +21,64 @@ class ConfigurationController
|
||||||
|
|
||||||
public function SetConfig(Request $request, Response $response, array $args) : Response {
|
public function SetConfig(Request $request, Response $response, array $args) : Response {
|
||||||
try {
|
try {
|
||||||
if (isset($request->getParsedBody()['domain'])) {
|
$body = $request->getParsedBody();
|
||||||
$domain = $request->getParsedBody()['domain'] ?? '';
|
if (is_array($body)) {
|
||||||
$this->configurationManager->SetDomain($domain);
|
if (is_string($body['domain']))
|
||||||
}
|
$this->configurationManager->SetDomain($body['domain']);
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['current-master-password']) || isset($request->getParsedBody()['new-master-password'])) {
|
$currentMasterPassword = is_string($body['current-master-password']) ? $body['current-master-password'] : null;
|
||||||
$currentMasterPassword = $request->getParsedBody()['current-master-password'] ?? '';
|
$newMasterPassword = is_string($body['new-master-password']) ? $body['new-master-password'] : null;
|
||||||
$newMasterPassword = $request->getParsedBody()['new-master-password'] ?? '';
|
if ($currentMasterPassword !== null || $newMasterPassword !== null)
|
||||||
$this->configurationManager->ChangeMasterPassword($currentMasterPassword, $newMasterPassword);
|
$this->configurationManager->ChangeMasterPassword($currentMasterPassword ?? '', $newMasterPassword ?? '');
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['borg_backup_host_location'])) {
|
if (is_string($body['borg_backup_host_location']))
|
||||||
$location = $request->getParsedBody()['borg_backup_host_location'] ?? '';
|
$this->configurationManager->SetBorgBackupHostLocation($body['borg_backup_host_location']);
|
||||||
$this->configurationManager->SetBorgBackupHostLocation($location);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['borg_restore_host_location']) || isset($request->getParsedBody()['borg_restore_password'])) {
|
$borgRestoreHostLocation = is_string($body['borg_restore_host_location']) ? $body['borg_restore_host_location'] : null;
|
||||||
$restoreLocation = $request->getParsedBody()['borg_restore_host_location'] ?? '';
|
$borgRestorePassword = is_string($body['borg_restore_password']) ? $body['borg_restore_password'] : null;
|
||||||
$borgPassword = $request->getParsedBody()['borg_restore_password'] ?? '';
|
if ($borgRestoreHostLocation !== null || $borgRestorePassword !== null)
|
||||||
$this->configurationManager->SetBorgRestoreHostLocationAndPassword($restoreLocation, $borgPassword);
|
$this->configurationManager->SetBorgRestoreHostLocationAndPassword($borgRestoreHostLocation ?? '', $borgRestorePassword ?? '');
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['daily_backup_time'])) {
|
if (is_string($body['daily_backup_time']))
|
||||||
if (isset($request->getParsedBody()['automatic_updates'])) {
|
$this->configurationManager->SetDailyBackupTime(
|
||||||
$enableAutomaticUpdates = true;
|
$body['daily_backup_time'],
|
||||||
} else {
|
isset($body['automatic_updates']),
|
||||||
$enableAutomaticUpdates = false;
|
isset($body['success_notification']));
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['success_notification'])) {
|
|
||||||
$successNotification = true;
|
|
||||||
} else {
|
|
||||||
$successNotification = false;
|
|
||||||
}
|
|
||||||
$dailyBackupTime = $request->getParsedBody()['daily_backup_time'] ?? '';
|
|
||||||
$this->configurationManager->SetDailyBackupTime($dailyBackupTime, $enableAutomaticUpdates, $successNotification);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['delete_daily_backup_time'])) {
|
if (isset($body['delete_daily_backup_time']))
|
||||||
$this->configurationManager->DeleteDailyBackupTime();
|
$this->configurationManager->DeleteDailyBackupTime();
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['additional_backup_directories'])) {
|
if (is_string($body['additional_backup_directories']))
|
||||||
$additionalBackupDirectories = $request->getParsedBody()['additional_backup_directories'] ?? '';
|
$this->configurationManager->SetAdditionalBackupDirectories($body['additional_backup_directories']);
|
||||||
$this->configurationManager->SetAdditionalBackupDirectories($additionalBackupDirectories);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['delete_timezone'])) {
|
if (isset($body['delete_timezone']))
|
||||||
$this->configurationManager->DeleteTimezone();
|
$this->configurationManager->DeleteTimezone();
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['timezone'])) {
|
if (is_string($body['timezone']))
|
||||||
$timezone = $request->getParsedBody()['timezone'] ?? '';
|
$this->configurationManager->SetTimezone($body['timezone']);
|
||||||
$this->configurationManager->SetTimezone($timezone);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['options-form'])) {
|
if (isset($body['options-form'])) {
|
||||||
if (isset($request->getParsedBody()['collabora']) && isset($request->getParsedBody()['onlyoffice'])) {
|
if (isset($body['collabora']) && isset($body['onlyoffice']))
|
||||||
throw new InvalidSettingConfigurationException("Collabora and Onlyoffice are not allowed to be enabled at the same time!");
|
throw new InvalidSettingConfigurationException("Collabora and Onlyoffice are not allowed to be enabled at the same time!");
|
||||||
|
$this->configurationManager->SetClamavEnabledState(isset($body['clamav']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetOnlyofficeEnabledState(isset($body['onlyoffice']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetCollaboraEnabledState(isset($body['collabora']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetTalkEnabledState(isset($body['talk']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetTalkRecordingEnabledState(isset($body['talk-recording']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetImaginaryEnabledState(isset($body['imaginary']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetFulltextsearchEnabledState(isset($body['fulltextsearch']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetDockerSocketProxyEnabledState(isset($body['docker-socket-proxy']) ? 1 : 0);
|
||||||
|
$this->configurationManager->SetWhiteboardEnabledState(isset($body['whiteboard']) ? 1 : 0);
|
||||||
}
|
}
|
||||||
if (isset($request->getParsedBody()['clamav'])) {
|
|
||||||
$this->configurationManager->SetClamavEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetClamavEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['onlyoffice'])) {
|
|
||||||
$this->configurationManager->SetOnlyofficeEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetOnlyofficeEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['collabora'])) {
|
|
||||||
$this->configurationManager->SetCollaboraEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetCollaboraEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['talk'])) {
|
|
||||||
$this->configurationManager->SetTalkEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetTalkEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['talk-recording'])) {
|
|
||||||
$this->configurationManager->SetTalkRecordingEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetTalkRecordingEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['imaginary'])) {
|
|
||||||
$this->configurationManager->SetImaginaryEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetImaginaryEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['fulltextsearch'])) {
|
|
||||||
$this->configurationManager->SetFulltextsearchEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetFulltextsearchEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['docker-socket-proxy'])) {
|
|
||||||
$this->configurationManager->SetDockerSocketProxyEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetDockerSocketProxyEnabledState(0);
|
|
||||||
}
|
|
||||||
if (isset($request->getParsedBody()['whiteboard'])) {
|
|
||||||
$this->configurationManager->SetWhiteboardEnabledState(1);
|
|
||||||
} else {
|
|
||||||
$this->configurationManager->SetWhiteboardEnabledState(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['delete_collabora_dictionaries'])) {
|
if (isset($body['delete_collabora_dictionaries']))
|
||||||
$this->configurationManager->DeleteCollaboraDictionaries();
|
$this->configurationManager->DeleteCollaboraDictionaries();
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['collabora_dictionaries'])) {
|
if (is_string($body['collabora_dictionaries']))
|
||||||
$collaboraDictionaries = $request->getParsedBody()['collabora_dictionaries'] ?? '';
|
$this->configurationManager->SetCollaboraDictionaries($body['collabora_dictionaries']);
|
||||||
$this->configurationManager->SetCollaboraDictionaries($collaboraDictionaries);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($request->getParsedBody()['delete_borg_backup_host_location'])) {
|
if (isset($body['delete_borg_backup_host_location']))
|
||||||
$this->configurationManager->DeleteBorgBackupHostLocation();
|
$this->configurationManager->DeleteBorgBackupHostLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $response->withStatus(201)->withHeader('Location', '/');
|
return $response->withStatus(201)->withHeader('Location', '/');
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue