diff --git a/app/filters.php b/app/filters.php index 58f2c2d1..9c93c05d 100644 --- a/app/filters.php +++ b/app/filters.php @@ -3,6 +3,7 @@ Route::filter('is_setup', 'IsSetupFilter'); Route::filter('has_setting', 'HasSettingFilter'); Route::filter('cors', 'CORSFilter'); +Route::filter('allowed_domains', 'AllowedDomainsFilter'); /* |-------------------------------------------------------------------------- diff --git a/app/filters/AllowedDomainsFilter.php b/app/filters/AllowedDomainsFilter.php new file mode 100644 index 00000000..feedbe4c --- /dev/null +++ b/app/filters/AllowedDomainsFilter.php @@ -0,0 +1,19 @@ +headers->set('Access-Control-Allow-Origin', $ourDomain); + + // Should we allow anyone else? + if ($setting = Setting::get('allowed_domains')) { + $domains = explode(',', $setting); + foreach ($domains as $domain) { + $response->headers->set('Access-Control-Allow-Origin', $domain); + } + } + + return $response; + } +} diff --git a/app/routes/api.php b/app/routes/api.php index 47763cf8..d3fac4d1 100644 --- a/app/routes/api.php +++ b/app/routes/api.php @@ -1,6 +1,10 @@ 'v1', 'namespace' => 'CachetHQ\Cachet\Controllers\Api'], function() { +Route::api([ + 'version' => 'v1', + 'namespace' => 'CachetHQ\Cachet\Controllers\Api', + 'after' => 'allowed_domains' +], function() { Route::get('components', 'ComponentController@getComponents'); Route::get('components/{id}', 'ComponentController@getComponent'); Route::get('components/{id}/incidents', 'ComponentController@getComponentIncidents'); diff --git a/app/routes/app.php b/app/routes/app.php index f74a0179..282a3619 100644 --- a/app/routes/app.php +++ b/app/routes/app.php @@ -7,7 +7,7 @@ Route::group(['before' => 'has_setting:app_name'], function() { }); // Setup route. -Route::group(['before' => 'no_setup:app_name'], function() { +Route::group(['before' => 'is_setup'], function() { Route::controller('/setup', 'SetupController'); }); diff --git a/app/views/dashboard/settings.blade.php b/app/views/dashboard/settings.blade.php index 6817a818..2482efdb 100644 --- a/app/views/dashboard/settings.blade.php +++ b/app/views/dashboard/settings.blade.php @@ -30,10 +30,6 @@ -
- - -

Mail