From 94ffa5462fb1fc227f11927a46c920e3b3497a5d Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Wed, 23 Dec 2015 15:19:09 +0000 Subject: [PATCH] Convert raw usage of the session model to the repository --- app/Config/Repository.php | 22 +++++++++++-------- .../Dashboard/SettingsController.php | 13 +++++------ app/Http/Controllers/SetupController.php | 7 ++---- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/Config/Repository.php b/app/Config/Repository.php index 530f2203..980be3bb 100644 --- a/app/Config/Repository.php +++ b/app/Config/Repository.php @@ -51,12 +51,10 @@ class Repository */ public function get($name, $default = null) { - // if we've not loaded the settings, load them now if (!$this->settings) { $this->settings = $this->model->all()->lists('value', 'name'); } - // if the setting exists and is not blank, return it if (!empty($this->settings[$name])) { return $this->settings[$name]; } @@ -67,19 +65,25 @@ class Repository /** * Creates or updates a setting value. * - * @param string $name - * @param string $value + * @param string $name + * @param string|null $value * * @return void */ public function set($name, $value) { - // save the change to the db - $this->model->updateOrCreate(compact('name'), compact('value')); + if ($value === null) { + $this->model->where('name', $name)->delete(); - // if we've loaded the settings, persist this change - if ($this->settings) { - $this->settings[$name] = $value; + if ($this->settings && isset($this->settings[$name])) { + unset($this->settings[$name]); + } + } else { + $this->model->updateOrCreate(compact('name'), compact('value')); + + if ($this->settings) { + $this->settings[$name] = $value; + } } } } diff --git a/app/Http/Controllers/Dashboard/SettingsController.php b/app/Http/Controllers/Dashboard/SettingsController.php index 633c1a84..dceb8052 100644 --- a/app/Http/Controllers/Dashboard/SettingsController.php +++ b/app/Http/Controllers/Dashboard/SettingsController.php @@ -11,7 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Dashboard; -use CachetHQ\Cachet\Models\Setting; +use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Models\User; use Exception; use GrahamCampbell\Binput\Facades\Binput; @@ -197,8 +197,7 @@ class SettingsController extends Controller $redirectUrl = Session::get('redirect_to', route('dashboard.settings.setup')); if (Binput::get('remove_banner') === '1') { - $setting = Setting::where('name', 'app_banner'); - $setting->delete(); + Setting::set('app_banner', null); } if (Binput::hasFile('app_banner')) { @@ -221,10 +220,10 @@ class SettingsController extends Controller } // Store the banner. - Setting::firstOrCreate(['name' => 'app_banner'])->update(['value' => base64_encode(file_get_contents($file->getRealPath()))]); + Setting::set('app_banner', base64_encode(file_get_contents($file->getRealPath()))); - // Store the banner type - Setting::firstOrCreate(['name' => 'app_banner_type'])->update(['value' => $file->getMimeType()]); + // Store the banner type. + Setting::set('app_banner_type', $file->getMimeType()); } try { @@ -233,7 +232,7 @@ class SettingsController extends Controller $settingValue = rtrim($settingValue, '/'); } - Setting::firstOrCreate(['name' => $settingName])->update(['value' => $settingValue]); + Setting::set($settingName, $settingValue); } } catch (Exception $e) { return Redirect::to($redirectUrl)->withErrors(trans('dashboard.settings.edit.failure')); diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 98e9ca7e..168ed735 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -11,7 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers; -use CachetHQ\Cachet\Models\Setting; +use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Models\User; use GrahamCampbell\Binput\Facades\Binput; use Illuminate\Routing\Controller; @@ -166,10 +166,7 @@ class SetupController extends Controller $settings = array_pull($postData, 'settings'); foreach ($settings as $settingName => $settingValue) { - Setting::create([ - 'name' => $settingName, - 'value' => $settingValue, - ]); + Setting::set($settingName, $settingValue); } $envData = array_pull($postData, 'env');