From 0c99248debbec2b379a9576b986498eb8691d4d9 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 13 May 2018 09:34:27 +0200 Subject: [PATCH] Fix rules surrounding creation of jobs [skip ci] --- app/Http/Controllers/Import/IndexController.php | 13 ++++++------- resources/lang/en_US/import.php | 3 ++- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Import/IndexController.php b/app/Http/Controllers/Import/IndexController.php index e94a563d1e..726e1a54bc 100644 --- a/app/Http/Controllers/Import/IndexController.php +++ b/app/Http/Controllers/Import/IndexController.php @@ -72,13 +72,11 @@ class IndexController extends Controller public function create(string $importProvider) { // can only create "fake" for demo user. + $providers = array_keys($this->getProviders()); + if (!in_array($importProvider, $providers, true)) { + session()->flash('warning', trans('import.cannot_create_for_provider', ['provider' => $importProvider])); - if ( - !(bool)config('app.debug') - && !(bool)config(sprintf('import.enabled.%s', $importProvider)) === true - && !\in_array(config('app.env'), ['demo', 'testing']) - ) { - throw new FireflyException(sprintf('Import using provider "%s" is currently not available.', $importProvider)); // @codeCoverageIgnore + return redirect(route('import.index')); } $importJob = $this->repository->create($importProvider); @@ -148,6 +146,7 @@ class IndexController extends Controller $providerNames = array_keys(config('import.enabled')); $providers = []; $isDemoUser = $this->userRepository->hasRole(auth()->user(), 'demo'); + $isDebug = (bool)config('app.debug'); foreach ($providerNames as $providerName) { Log::debug(sprintf('Now with provider %s', $providerName)); // only consider enabled providers @@ -163,7 +162,7 @@ class IndexController extends Controller Log::debug('User is demo and this provider is not allowed for demo user. NEXT!'); continue; } - if ($isDemoUser === false && $allowedForUser === false) { + if ($isDemoUser === false && $allowedForUser === false && $isDebug === false) { Log::debug('User is not demo and this provider is not allowed for such users. NEXT!'); continue; } diff --git a/resources/lang/en_US/import.php b/resources/lang/en_US/import.php index 8a07cc6320..bf8bcc9c81 100644 --- a/resources/lang/en_US/import.php +++ b/resources/lang/en_US/import.php @@ -28,6 +28,7 @@ return [ 'prerequisites_breadcrumb_fake' => 'Prerequisites for the fake import provider', 'job_configuration_breadcrumb' => 'Configuration for ":key"', 'job_status_breadcrumb' => 'Import status for ":key"', + 'cannot_create_for_provider' => 'Firefly III cannot create a job for the ":provider"-provider.', // index page: 'general_index_title' => 'Import a file', @@ -132,7 +133,7 @@ return [ 'job_config_field_value' => 'Field value', 'job_config_field_mapped' => 'Mapped to', 'map_do_not_map' => '(do not map)', - 'job_config_map_submit' => 'Start the import', + 'job_config_map_submit' => 'Start the import', // import status page: