Introduce HasSettingFilter that'll redirect to setup

This commit is contained in:
James Brooks
2014-12-01 08:32:31 +00:00
parent 8bed3674d9
commit 5fdd8db739
3 changed files with 23 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
<?php
Route::filter('is_setup', 'IsSetupFilter');
Route::filter('has_setting', 'HasSettingFilter');
Route::filter('cors', 'CORSFilter');
/*

View File

@@ -0,0 +1,14 @@
<?php
class HasSettingFilter {
public function filter($route, $request, $settingName) {
try {
$setting = Setting::where('name', $settingName)->first();
if (!$setting->value) {
return Redirect::to('setup');
}
} catch (Exception $e) {
return Redirect::to('setup');
}
}
}

View File

@@ -1,7 +1,13 @@
<?php
Route::get('/', 'HomeController@showIndex');
Route::get('/incident/{incident}', 'HomeController@showIncident');
// Prevent access until the app is setup.
Route::group(['before' => 'has_setting:app_name'], function() {
Route::get('/', 'HomeController@showIndex');
Route::get('/incident/{incident}', 'HomeController@showIncident');
Route::get('/auth/login', 'AuthController@showLogin')->before('guest');
Route::post('/auth/login', 'AuthController@postLogin')->before('guest|csrf');
});
Route::group(['before' => 'no_setup:app_name'], function() {
Route::get('/setup', 'SetupController@showSetup');
@@ -10,9 +16,6 @@ Route::group(['before' => 'no_setup:app_name'], function() {
});
});
Route::get('/auth/login', 'AuthController@showLogin')->before('guest');
Route::post('/auth/login', 'AuthController@postLogin')->before('guest|csrf');
Route::group(['before' => 'auth'], function() {
// Dashboard/Management Panel etc.
Route::get('/dashboard', 'DashboardController@showDashboard');