diff --git a/app/Http/Controllers/Dashboard/SettingsController.php b/app/Http/Controllers/Dashboard/SettingsController.php index 308d0e41..eff77855 100644 --- a/app/Http/Controllers/Dashboard/SettingsController.php +++ b/app/Http/Controllers/Dashboard/SettingsController.php @@ -18,6 +18,7 @@ use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Lang; use Illuminate\Support\Facades\Redirect; +use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\View; class SettingsController extends Controller @@ -30,25 +31,25 @@ class SettingsController extends Controller $this->subMenu = [ 'setup' => [ 'title' => trans('dashboard.settings.app-setup.app-setup'), - 'url' => '/dashboard/settings/setup', + 'url' => route('dashboard.settings.setup'), 'icon' => 'ion-gear-b', 'active' => false, ], 'security' => [ 'title' => trans('dashboard.settings.security.security'), - 'url' => '/dashboard/settings/security', + 'url' => route('dashboard.settings.security'), 'icon' => 'ion-lock-combination', 'active' => false, ], 'theme' => [ 'title' => trans('dashboard.settings.theme.theme'), - 'url' => '/dashboard/settings/theme', + 'url' => route('dashboard.settings.theme'), 'icon' => 'ion-paintbrush', 'active' => false, ], 'stylesheet' => [ 'title' => trans('dashboard.settings.stylesheet.stylesheet'), - 'url' => '/dashboard/settings/stylesheet', + 'url' => route('dashboard.settings.stylesheet'), 'icon' => 'ion-paintbucket', 'active' => false, ], @@ -68,6 +69,8 @@ class SettingsController extends Controller { $this->subMenu['setup']['active'] = true; + Session::flash('redirect_to', $this->subMenu['setup']['url']); + return View::make('dashboard.settings.app-setup') ->withPageTitle('Application Setup - Dashboard') ->withSubMenu($this->subMenu); @@ -82,6 +85,8 @@ class SettingsController extends Controller { $this->subMenu['theme']['active'] = true; + Session::flash('redirect_to', $this->subMenu['theme']['url']); + return View::make('dashboard.settings.theme') ->withPageTitle('Theme - Dashboard') ->withSubMenu($this->subMenu); @@ -98,6 +103,8 @@ class SettingsController extends Controller $unsecureUsers = User::whereNull('google_2fa_secret')->orWhere('google_2fa_secret', '')->get(); + Session::flash('redirect_to', $this->subMenu['security']['url']); + return View::make('dashboard.settings.security') ->withPageTitle('Security - Dashboard') ->withSubMenu($this->subMenu) @@ -113,6 +120,8 @@ class SettingsController extends Controller { $this->subMenu['stylesheet']['active'] = true; + Session::flash('redirect_to', $this->subMenu['stylesheet']['url']); + return View::make('dashboard.settings.stylesheet') ->withPageTitle('Stylesheet - Dashboard') ->withSubMenu($this->subMenu); @@ -125,6 +134,8 @@ class SettingsController extends Controller */ public function postSettings() { + $redirectUrl = Session::get('redirect_to', route('dashboard.settings.setup')); + if (Binput::get('remove_banner') === '1') { $setting = Setting::where('name', 'app_banner'); $setting->delete(); @@ -138,15 +149,15 @@ class SettingsController extends Controller $maxSize = $file->getMaxFilesize(); if ($file->getSize() > $maxSize) { - return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.app-setup.too-big', ['size' => $maxSize])); + return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.app-setup.too-big', ['size' => $maxSize])); } if (!$file->isValid() || $file->getError()) { - return Redirect::route('dashboard.settings.setup')->withErrors($file->getErrorMessage()); + return Redirect::to($redirectUrl)->withErrors($file->getErrorMessage()); } - if (strpos($file->getMimeType(), 'image/') !== 0) { - return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.app-setup.images-only')); + if (!starts_with($file->getMimeType(), 'image/')) { + return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.app-setup.images-only')); } // Store the banner. @@ -165,14 +176,13 @@ class SettingsController extends Controller Setting::firstOrCreate(['name' => $settingName])->update(['value' => $settingValue]); } } catch (Exception $e) { - return Redirect::route('dashboard.settings.setup')->withErrors(trans('dashboard.settings.edit.failure')); + return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.edit.failure')); } if (Binput::has('app_locale')) { Lang::setLocale(Binput::get('app_locale')); } - return Redirect::route('dashboard.settings.setup') - ->withSuccess(trans('dashboard.settings.edit.success')); + return Redirect::to($redirectUrl)->withSuccess(trans('dashboard.settings.edit.success')); } }