diff --git a/app/controllers/SetupController.php b/app/controllers/SetupController.php index c1ba1d33..e233c47a 100644 --- a/app/controllers/SetupController.php +++ b/app/controllers/SetupController.php @@ -2,6 +2,31 @@ class SetupController extends Controller { public function showSetup() { - return View::make('setup'); + return View::make('setup')->with([ + 'pageTitle' => 'Setup' + ]); + } + + public function setupCachet() { + $postData = Input::get(); + $v = Validator::make($postData, [ + 'app_name' => 'required', + 'app_domain' => 'url|required', + 'show_support' => 'boolean' + ]); + + if ($v->passes()) { + // Create the settings, boi. + foreach ($postData as $settingName => $settingValue) { + $setting = new Setting; + $setting->name = $settingName; + $setting->value = $settingValue; + $setting->save(); + } + return Redirect::to('/'); + } else { + // No good, let's try that again. + return Redirect::back()->with('errors', $v->messages()); + } } } diff --git a/app/filters/NoSetupFilter.php b/app/filters/NoSetupFilter.php index 5bab60f0..ef712c5a 100644 --- a/app/filters/NoSetupFilter.php +++ b/app/filters/NoSetupFilter.php @@ -2,9 +2,12 @@ class NoSetupFilter { public function filter($route, $request, $settingName) { - $setting = Setting::get($settingName); - if ($setting === null) { - return Response::make('Unauthorized', 401); + try { + $setting = Setting::where('name', $settingName)->first(); + if ($setting->value) { + return Response::make('Unauthorized', 401); + } + } catch (Exception $e) { } } } diff --git a/app/routes/app.php b/app/routes/app.php index 286a4d8d..85b698cb 100644 --- a/app/routes/app.php +++ b/app/routes/app.php @@ -5,4 +5,7 @@ Route::group(['before' => 'no_setup:app_name'], function() { Route::get('/setup', 'SetupController@showSetup'); + Route::group(['before' => 'csrf'], function() { + Route::post('/setup', 'SetupController@setupCachet'); + }); }); diff --git a/app/views/index.blade.php b/app/views/index.blade.php index 87ed54aa..0ad115e7 100644 --- a/app/views/index.blade.php +++ b/app/views/index.blade.php @@ -7,7 +7,6 @@