Refactored controllers
This commit is contained in:
@@ -1,10 +1,6 @@
|
||||
<?php
|
||||
|
||||
Route::api([
|
||||
'version' => 'v1',
|
||||
'namespace' => 'CachetHQ\Cachet\Controllers\Api',
|
||||
'after' => 'allowed_domains',
|
||||
], function () {
|
||||
Route::api(['after' => 'allowed_domains', 'namespace' => 'CachetHQ\Cachet\Controllers\Api', 'version' => 'v1'], function () {
|
||||
Route::get('components', 'ComponentController@getComponents');
|
||||
Route::get('components/{id}', 'ComponentController@getComponent');
|
||||
Route::get('components/{id}/incidents', 'ComponentController@getComponentIncidents');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
// Prevent access until the app is setup.
|
||||
Route::group(['before' => 'has_setting:app_name'], function () {
|
||||
Route::group(['before' => 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () {
|
||||
Route::get('/', ['as' => 'status-page', 'uses' => 'HomeController@showIndex']);
|
||||
Route::get('/incident/{incident}', 'HomeController@showIncident');
|
||||
});
|
||||
@@ -11,4 +11,4 @@ Route::group(['before' => 'is_setup'], function () {
|
||||
Route::controller('/setup', 'SetupController');
|
||||
});
|
||||
|
||||
Route::get('/rss', 'RSSController@feedAction');
|
||||
Route::get('/rss', 'RssController@feedAction');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
Route::group(['before' => 'has_setting:app_name'], function () {
|
||||
Route::group(['before' => 'has_setting:app_name', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () {
|
||||
Route::get('/auth/login', ['before' => 'guest', 'as' => 'login', 'uses' => 'AuthController@showLogin']);
|
||||
Route::post('/auth/login', ['before' => 'guest|csrf|login_throttling', 'as' => 'logout', 'uses' => 'AuthController@postLogin']);
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
Route::group(['before' => 'auth', 'prefix' => 'dashboard'], function () {
|
||||
Route::group(['before' => 'auth', 'prefix' => 'dashboard', 'namespace' => 'CachetHQ\Cachet\Controllers'], function () {
|
||||
// Dashboard
|
||||
Route::get('/', ['as' => 'dashboard', 'uses' => 'DashboardController@showDashboard']);
|
||||
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use GrahamCampbell\Throttle\Facades\Throttle;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\View;
|
||||
|
||||
/**
|
||||
* Logs users into their account.
|
||||
*/
|
||||
@@ -24,13 +34,13 @@ class AuthController extends Controller
|
||||
{
|
||||
if (Auth::attempt(Input::only(['email', 'password']))) {
|
||||
return Redirect::intended('dashboard');
|
||||
} else {
|
||||
Throttle::hit(Request::instance(), 10, 10);
|
||||
|
||||
return Redirect::back()
|
||||
->withInput(Input::except('password'))
|
||||
->with('error', 'Invalid email or password');
|
||||
}
|
||||
|
||||
Throttle::hit(Request::instance(), 10, 10);
|
||||
|
||||
return Redirect::back()
|
||||
->withInput(Input::except('password'))
|
||||
->with('error', 'Invalid email or password');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,23 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Exception;
|
||||
use Component;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
|
||||
class DashAPIController extends Controller
|
||||
{
|
||||
/**
|
||||
* Updates a component with the entered info.
|
||||
*
|
||||
* @param Component $component
|
||||
* @param \Component $component
|
||||
*
|
||||
* @return array
|
||||
* @throws \Exception
|
||||
*
|
||||
* @return \Component
|
||||
*/
|
||||
public function postUpdateComponent(Component $component)
|
||||
{
|
||||
$componentData = Input::all();
|
||||
unset($componentData['_token']);
|
||||
if ($component->update($componentData)) {
|
||||
return $component;
|
||||
} else {
|
||||
App::abort(500);
|
||||
if (!$component->update(Input::except(['_token']))) {
|
||||
throw new Exception('Failed to update the component.');
|
||||
}
|
||||
|
||||
return $component;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -32,9 +39,7 @@ class DashAPIController extends Controller
|
||||
|
||||
foreach ($componentData['component'] as $componentId => $order) {
|
||||
$component = Component::find($componentId);
|
||||
$component->update([
|
||||
'order' => $order,
|
||||
]);
|
||||
$component->update(['order' => $order]);
|
||||
}
|
||||
|
||||
return $componentData;
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Component;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
|
||||
class DashComponentController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -1,5 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Incident;
|
||||
use IncidentTemplate;
|
||||
|
||||
class DashIncidentController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Setting;
|
||||
|
||||
class DashSettingsController extends Controller
|
||||
{
|
||||
protected $subMenu = [];
|
||||
@@ -105,27 +113,27 @@ class DashSettingsController extends Controller
|
||||
*/
|
||||
public function postSettings()
|
||||
{
|
||||
// Fetch all of the settings we've been POSTed.
|
||||
$settings = Input::all();
|
||||
|
||||
if ($settings['remove_banner'] == "1") {
|
||||
if (Input::get('remove_banner') == "1") {
|
||||
$setting = Setting::where('name', 'app_banner');
|
||||
$setting->delete();
|
||||
}
|
||||
|
||||
unset($settings['remove-banner']);
|
||||
|
||||
if (Input::hasFile('app_banner')) {
|
||||
$file = Input::file('app_banner');
|
||||
|
||||
// Image Validation.
|
||||
// Image size in bytes.
|
||||
$maxSize = $file->getMaxFilesize();
|
||||
|
||||
if ($file->getSize() > $maxSize) {
|
||||
return Redirect::back()->withErrorMessage('You need to upload an image that is less than '.$maxSize.'.');
|
||||
} elseif (!$file->isValid() || $file->getError()) {
|
||||
}
|
||||
|
||||
if (!$file->isValid() || $file->getError()) {
|
||||
return Redirect::back()->withErrorMessage($file->getErrorMessage());
|
||||
} elseif (strpos($file->getMimeType(), 'image/') !== 0) {
|
||||
}
|
||||
|
||||
if (strpos($file->getMimeType(), 'image/') !== 0) {
|
||||
return Redirect::back()->withErrorMessage('Only images may be uploaded.');
|
||||
}
|
||||
|
||||
@@ -144,10 +152,8 @@ class DashSettingsController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
unset($settings['app_banner']);
|
||||
|
||||
try {
|
||||
foreach ($settings as $settingName => $settingValue) {
|
||||
foreach (Input::except(['app_banner', 'remove-banner']) as $settingName => $settingValue) {
|
||||
$setting = Setting::firstOrCreate([
|
||||
'name' => $settingName,
|
||||
])->update([
|
||||
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
|
||||
class DashUserController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -1,5 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Component;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\View;
|
||||
|
||||
class DashboardController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -1,26 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Component;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Setting;
|
||||
|
||||
class HomeController extends Controller
|
||||
{
|
||||
/**
|
||||
* The component instance.
|
||||
*
|
||||
* @var \Component
|
||||
*/
|
||||
protected $component;
|
||||
|
||||
/**
|
||||
* Create a new home controller instance.
|
||||
*
|
||||
* @param \Component $component
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Component $component)
|
||||
{
|
||||
$this->component = $component;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rendered Blade templates.
|
||||
*
|
||||
@@ -1,6 +1,14 @@
|
||||
<?php
|
||||
|
||||
class RSSController extends Controller
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Incident;
|
||||
use Setting;
|
||||
use Thujohn\Rss\RssFacade;
|
||||
|
||||
class RssController extends Controller
|
||||
{
|
||||
/**
|
||||
* Generates an RSS feed of all incidents.
|
||||
@@ -9,11 +17,11 @@ class RSSController extends Controller
|
||||
*/
|
||||
public function feedAction()
|
||||
{
|
||||
$feed = RSS::feed('2.0', 'UTF-8');
|
||||
$feed = RssFacade::feed('2.0', 'UTF-8');
|
||||
$feed->channel([
|
||||
'title' => Setting::get('app_name'),
|
||||
'title' => Setting::get('app_name'),
|
||||
'description' => 'Status Feed',
|
||||
'link' => Setting::get('app_domain'),
|
||||
'link' => Setting::get('app_domain'),
|
||||
]);
|
||||
|
||||
Incident::get()->map(function ($incident) use ($feed) {
|
||||
@@ -1,5 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace CachetHQ\Cachet\Controllers
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Input;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Setting;
|
||||
use User;
|
||||
|
||||
class SetupController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -46,7 +57,7 @@ class SetupController extends Controller
|
||||
// Pull the user details out.
|
||||
$userDetails = array_pull($postData, 'user');
|
||||
|
||||
// TODO: Do we want to just use Eloquent::unguard() here?
|
||||
// TODO: Do we want to just use Model::unguard() here?
|
||||
$user = User::create([
|
||||
'username' => $userDetails['username'],
|
||||
'email' => $userDetails['email'],
|
||||
@@ -59,8 +70,8 @@ class SetupController extends Controller
|
||||
$settings = array_get($postData, 'settings');
|
||||
|
||||
foreach ($settings as $settingName => $settingValue) {
|
||||
$setting = new Setting();
|
||||
$setting->name = $settingName;
|
||||
$setting = new Setting();
|
||||
$setting->name = $settingName;
|
||||
$setting->value = $settingValue;
|
||||
$setting->save();
|
||||
}
|
||||
Reference in New Issue
Block a user