diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 36138a1485..b53ce8e797 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -72,6 +72,7 @@ v27.0.00 User Admin: added an option to disable the display of privacy options, so they can be managed internally User Admin: increased the field length for Departure Reason to 100 characters System Admin: enabled Generic OAuth to specify the scopes and username field requested + System Admin: added an option to Upload Photos & Files to not delete existing files System Admin: added an importer for Behaviour Records Bug Fixes diff --git a/modules/System Admin/file_upload.php b/modules/System Admin/file_upload.php index f28d6607f7..c2d7140a81 100644 --- a/modules/System Admin/file_upload.php +++ b/modules/System Admin/file_upload.php @@ -24,7 +24,7 @@ use Gibbon\Domain\User\PersonalDocumentTypeGateway; use Gibbon\Services\Format; -if (isActionAccessible($guid, $connection2, '/modules/System Admin/import_manage.php') == false) { +if (isActionAccessible($guid, $connection2, '/modules/System Admin/file_upload.php') == false) { // Access denied $page->addError(__('You do not have access to this action.')); } else { diff --git a/modules/System Admin/file_uploadPreview.php b/modules/System Admin/file_uploadPreview.php index bd3299d217..698f44186f 100644 --- a/modules/System Admin/file_uploadPreview.php +++ b/modules/System Admin/file_uploadPreview.php @@ -29,7 +29,7 @@ use Gibbon\Domain\User\PersonalDocumentGateway; use Gibbon\Domain\User\PersonalDocumentTypeGateway; -if (isActionAccessible($guid, $connection2, '/modules/System Admin/import_manage.php') == false) { +if (isActionAccessible($guid, $connection2, '/modules/System Admin/file_upload.php') == false) { // Access denied $page->addError(__('You do not have access to this action.')); } else { @@ -195,6 +195,10 @@ $row = $form->addRow(); $row->addLabel('overwrite', __('Overwrite'))->description(__('Should uploaded files overwrite any existing files?')); $row->addYesNo('overwrite')->selected('Y'); + + $row = $form->addRow(); + $row->addLabel('deleteFiles', __('Delete'))->description(__('Should original files be deleted from the server when overwriting files?')); + $row->addYesNo('deleteFiles')->selected('N'); } // DATA TABLE diff --git a/modules/System Admin/file_uploadProcess.php b/modules/System Admin/file_uploadProcess.php index f7bb68638a..ee66383385 100644 --- a/modules/System Admin/file_uploadProcess.php +++ b/modules/System Admin/file_uploadProcess.php @@ -31,7 +31,7 @@ $URL = $session->get('absoluteURL').'/index.php?q=/modules/System Admin/file_upload.php&step=3'; -if (isActionAccessible($guid, $connection2, '/modules/System Admin/import_manage.php') == false) { +if (isActionAccessible($guid, $connection2, '/modules/System Admin/file_upload.php') == false) { $URL .= '&return=error0'; header("Location: {$URL}"); exit; @@ -45,6 +45,7 @@ $gibbonPersonalDocumentTypeID = $_POST['gibbonPersonalDocumentTypeID'] ?? ''; $gibbonCustomFieldID = $_POST['gibbonCustomFieldID'] ?? ''; $overwrite = $_POST['overwrite'] ?? 'N'; + $deleteFiles = $_POST['deleteFiles'] ?? 'N'; $zoom = $_POST['zoom'] ?? '100'; $focalX = $_POST['focalX'] ?? '50'; $focalY = $_POST['focalY'] ?? '50'; @@ -116,10 +117,13 @@ $existingFile = $userData['image_240']; } - // Optionally overwrite exiting files or skip them - if (!empty($existingFile) && $overwrite == 'Y') { + // Optionally overwrite and delete exiting files + if (!empty($existingFile) && $overwrite == 'Y' && $deleteFiles == 'Y') { unlink($absolutePath.'/'.$existingFile); - } elseif (!empty($existingFile) && is_file($absolutePath.'/'.$existingFile) && $overwrite == 'N') { + } + + // Skip uploading files if the file exists and overwrite is not on + if (!empty($existingFile) && is_file($absolutePath.'/'.$existingFile) && $overwrite == 'N') { unlink($file['absolutePath']); continue; }