diff --git a/app/Http/Controllers/MaintenanceController.php b/app/Http/Controllers/MaintenanceController.php new file mode 100644 index 000000000..664a896b2 --- /dev/null +++ b/app/Http/Controllers/MaintenanceController.php @@ -0,0 +1,68 @@ +<?php + +namespace BookStack\Http\Controllers; + +use BookStack\Notifications\TestEmail; +use BookStack\Uploads\ImageService; +use Illuminate\Http\Request; + +class MaintenanceController extends Controller +{ + /** + * Show the page for application maintenance. + */ + public function index() + { + $this->checkPermission('settings-manage'); + $this->setPageTitle(trans('settings.maint')); + + // Get application version + $version = trim(file_get_contents(base_path('version'))); + + return view('settings.maintenance', ['version' => $version]); + } + + /** + * Action to clean-up images in the system. + */ + public function cleanupImages(Request $request, ImageService $imageService) + { + $this->checkPermission('settings-manage'); + + $checkRevisions = !($request->get('ignore_revisions', 'false') === 'true'); + $dryRun = !($request->has('confirm')); + + $imagesToDelete = $imageService->deleteUnusedImages($checkRevisions, $dryRun); + $deleteCount = count($imagesToDelete); + if ($deleteCount === 0) { + $this->showWarningNotification(trans('settings.maint_image_cleanup_nothing_found')); + return redirect('/settings/maintenance')->withInput(); + } + + if ($dryRun) { + session()->flash('cleanup-images-warning', trans('settings.maint_image_cleanup_warning', ['count' => $deleteCount])); + } else { + $this->showSuccessNotification(trans('settings.maint_image_cleanup_success', ['count' => $deleteCount])); + } + + return redirect('/settings/maintenance#image-cleanup')->withInput(); + } + + /** + * Action to send a test e-mail to the current user. + */ + public function sendTestEmail() + { + $this->checkPermission('settings-manage'); + + try { + user()->notify(new TestEmail()); + $this->showSuccessNotification(trans('settings.maint_send_test_email_success', ['address' => user()->email])); + } catch (\Exception $exception) { + $errorMessage = trans('errors.maintenance_test_email_failure') . "\n" . $exception->getMessage(); + $this->showErrorNotification($errorMessage); + } + + return redirect('/settings/maintenance#image-cleanup')->withInput(); + } +} diff --git a/app/Http/Controllers/SettingController.php b/app/Http/Controllers/SettingController.php index feb6521f3..50d91d388 100644 --- a/app/Http/Controllers/SettingController.php +++ b/app/Http/Controllers/SettingController.php @@ -1,9 +1,7 @@ <?php namespace BookStack\Http\Controllers; use BookStack\Auth\User; -use BookStack\Notifications\TestEmail; use BookStack\Uploads\ImageRepo; -use BookStack\Uploads\ImageService; use Illuminate\Http\Request; class SettingController extends Controller @@ -74,63 +72,4 @@ class SettingController extends Controller $redirectLocation = '/settings#' . $request->get('section', ''); return redirect(rtrim($redirectLocation, '#')); } - - /** - * Show the page for application maintenance. - */ - public function showMaintenance() - { - $this->checkPermission('settings-manage'); - $this->setPageTitle(trans('settings.maint')); - - // Get application version - $version = trim(file_get_contents(base_path('version'))); - - return view('settings.maintenance', ['version' => $version]); - } - - /** - * Action to clean-up images in the system. - */ - public function cleanupImages(Request $request, ImageService $imageService) - { - $this->checkPermission('settings-manage'); - - $checkRevisions = !($request->get('ignore_revisions', 'false') === 'true'); - $dryRun = !($request->has('confirm')); - - $imagesToDelete = $imageService->deleteUnusedImages($checkRevisions, $dryRun); - $deleteCount = count($imagesToDelete); - if ($deleteCount === 0) { - $this->showWarningNotification(trans('settings.maint_image_cleanup_nothing_found')); - return redirect('/settings/maintenance')->withInput(); - } - - if ($dryRun) { - session()->flash('cleanup-images-warning', trans('settings.maint_image_cleanup_warning', ['count' => $deleteCount])); - } else { - $this->showSuccessNotification(trans('settings.maint_image_cleanup_success', ['count' => $deleteCount])); - } - - return redirect('/settings/maintenance#image-cleanup')->withInput(); - } - - /** - * Action to send a test e-mail to the current user. - */ - public function sendTestEmail() - { - $this->checkPermission('settings-manage'); - - try { - user()->notify(new TestEmail()); - $this->showSuccessNotification(trans('settings.maint_send_test_email_success', ['address' => user()->email])); - } catch (\Exception $exception) { - $errorMessage = trans('errors.maintenance_test_email_failure') . "\n" . $exception->getMessage(); - $this->showErrorNotification($errorMessage); - } - - - return redirect('/settings/maintenance#image-cleanup')->withInput(); - } } diff --git a/routes/web.php b/routes/web.php index d962c4324..307c6f516 100644 --- a/routes/web.php +++ b/routes/web.php @@ -162,9 +162,9 @@ Route::group(['middleware' => 'auth'], function () { Route::post('/', 'SettingController@update'); // Maintenance - Route::get('/maintenance', 'SettingController@showMaintenance'); - Route::delete('/maintenance/cleanup-images', 'SettingController@cleanupImages'); - Route::post('/maintenance/send-test-email', 'SettingController@sendTestEmail'); + Route::get('/maintenance', 'MaintenanceController@index'); + Route::delete('/maintenance/cleanup-images', 'MaintenanceController@cleanupImages'); + Route::post('/maintenance/send-test-email', 'MaintenanceController@sendTestEmail'); // Users Route::get('/users', 'UserController@index');