diff --git a/app/Http/Controllers/Import/IndexController.php b/app/Http/Controllers/Import/IndexController.php index 6216cc0045..3b3c21e48f 100644 --- a/app/Http/Controllers/Import/IndexController.php +++ b/app/Http/Controllers/Import/IndexController.php @@ -28,8 +28,10 @@ use FireflyIII\Http\Middleware\IsDemoUser; use FireflyIII\Import\Routine\RoutineInterface; use FireflyIII\Models\ImportJob; use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface; +use Illuminate\Http\Request; use Illuminate\Http\Response as LaravelResponse; use Log; +use Preferences; use View; @@ -132,6 +134,44 @@ class IndexController extends Controller return view('import.index', compact('subTitle', 'subTitleIcon', 'routines')); } + /** + * @param Request $request + * @param string $bank + * + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function reset(Request $request, string $bank) + { + if ($bank === 'bunq') { + // remove bunq related preferences. + Preferences::delete('bunq_api_key'); + Preferences::delete('bunq_server_public_key'); + Preferences::delete('bunq_private_key'); + Preferences::delete('bunq_public_key'); + Preferences::delete('bunq_installation_token'); + Preferences::delete('bunq_installation_id'); + Preferences::delete('bunq_device_server_id'); + Preferences::delete('external_ip'); + + } + + if ($bank === 'spectre') { + // remove spectre related preferences: + Preferences::delete('spectre_client_id'); + Preferences::delete('spectre_app_secret'); + Preferences::delete('spectre_service_secret'); + Preferences::delete('spectre_private_key'); + Preferences::delete('spectre_public_key'); + Preferences::delete('spectre_customer'); + } + + Preferences::mark(); + $request->session()->flash('info', (string)trans('firefly.settings_reset_for_' . $bank)); + + return redirect(route('import.index')); + + } + /** * @param ImportJob $job * diff --git a/resources/views/import/index.twig b/resources/views/import/index.twig index c9b5682c9a..02fa364a94 100644 --- a/resources/views/import/index.twig +++ b/resources/views/import/index.twig @@ -64,6 +64,35 @@ +
+
+
+
+

{{ 'reset_import_settings_title'|_ }}

+
+
+

+ {{ 'reset_import_settings_text'|_ }} +

+ +
+
+
{% endblock %} {% block scripts %} diff --git a/routes/web.php b/routes/web.php index 897e64e490..696cc57bf9 100755 --- a/routes/web.php +++ b/routes/web.php @@ -446,6 +446,7 @@ Route::group( // import method prerequisites: Route::get('prerequisites/{bank}', ['uses' => 'Import\PrerequisitesController@index', 'as' => 'prerequisites']); Route::post('prerequisites/{bank}', ['uses' => 'Import\PrerequisitesController@post', 'as' => 'prerequisites.post']); + Route::get('reset/{bank}', ['uses' => 'Import\IndexController@reset', 'as' => 'reset']); // create the job: Route::get('create/{bank}', ['uses' => 'Import\IndexController@create', 'as' => 'create-job']);