Namespaced models and refactored filters

This commit is contained in:
Graham Campbell
2015-01-02 00:18:19 +00:00
parent 15a6694865
commit 0ccb5e289c
66 changed files with 310 additions and 195 deletions

View File

@@ -0,0 +1,13 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use Illuminate\Support\Facades\Auth;
class AuthBasicFilter
{
public function filter()
{
return Auth::basic();
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use Illuminate\Http\Request;
use Illuminate\Routing\Route;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Response;
class AuthFilter
{
public function filter(Route $route, Request $request)
{
if (Auth::guest()) {
if ($request->ajax()) {
return Response::make('Unauthorized', 401);
} else {
return Redirect::guest('auth/login');
}
}
}
}

View File

@@ -0,0 +1,17 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use Illuminate\Session\TokenMismatchException;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
class CsrfFilter
{
public function filter()
{
if (Session::token() !== Input::get('_token')) {
throw new TokenMismatchException();
}
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
class GuestFilter
{
public function filter()
{
if (Auth::check()) {
return Redirect::to('/');
}
}
}

View File

@@ -0,0 +1,24 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use CachetHQ\Cachet\Models\Setting;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Routing\Route;
use Illuminate\Support\Facades\Redirect;
class HasSettingFilter
{
public function filter(Route $route, Request $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

@@ -0,0 +1,24 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use CachetHQ\Cachet\Models\Setting;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Routing\Route;
use Illuminate\Support\Facades\Redirect;
class IsSetupFilter
{
public function filter(Route $route, Request $request)
{
try {
$setting = Setting::where('name', 'app_name')->first();
if ($setting->value) {
return Redirect::to('/dashboard');
}
} catch (Exception $e) {
// do nothing
}
}
}

View File

@@ -0,0 +1,21 @@
<?php
namespace CachetHQ\Cachet\Http\Before;
use GrahamCampbell\Throttle\Facades\Throttle;
use Illuminate\Http\Request;
use Illuminate\Routing\Route;
use Illuminate\Support\Facades\Redirect;
class LoginThrottlingFilter
{
public function filter(Route $route, Request $request)
{
// check if we've reached the rate limit, but don't hit the throttle yet
// we can hit the throttle later on in the if validation passes
if (!Throttle::check($request, 10, 10)) {
return Redirect::back()
->with('error', 'You have made too many login requests.');
}
}
}