diff options
Diffstat (limited to 'app/Http')
| -rw-r--r-- | app/Http/Controllers/Auth/ForgotPasswordController.php | 32 | ||||
| -rw-r--r-- | app/Http/Controllers/Auth/LoginController.php | 39 | ||||
| -rw-r--r-- | app/Http/Controllers/Auth/RegisterController.php | 76 | ||||
| -rw-r--r-- | app/Http/Controllers/Auth/ResetPasswordController.php | 34 | ||||
| -rw-r--r-- | app/Http/Controllers/Controller.php | 7 | ||||
| -rw-r--r-- | app/Http/Controllers/RandomVerbController.php | 3 | ||||
| -rw-r--r-- | app/Http/Controllers/RootController.php | 3 | ||||
| -rw-r--r-- | app/Http/Controllers/UserController.php | 67 | ||||
| -rw-r--r-- | app/Http/Controllers/VerbController.php | 5 | ||||
| -rw-r--r-- | app/Http/Kernel.php | 56 | ||||
| -rw-r--r-- | app/Http/Middleware/Authenticate.php | 45 | ||||
| -rw-r--r-- | app/Http/Middleware/EncryptCookies.php | 17 | ||||
| -rw-r--r-- | app/Http/Middleware/Login.php | 34 | ||||
| -rw-r--r-- | app/Http/Middleware/RedirectIfAuthenticated.php (renamed from app/Http/Middleware/ExampleMiddleware.php) | 10 | ||||
| -rw-r--r-- | app/Http/Middleware/VerifyCsrfToken.php | 17 | ||||
| -rw-r--r-- | app/Http/routes.php | 88 | 
16 files changed, 288 insertions, 245 deletions
| diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php new file mode 100644 index 0000000..a36a6f4 --- /dev/null +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -0,0 +1,32 @@ +<?php + +namespace App\Http\Controllers\Auth; + +use App\Http\Controllers\Controller; +use Illuminate\Foundation\Auth\SendsPasswordResetEmails; + +class ForgotPasswordController extends Controller +{ +	/* +	|-------------------------------------------------------------------------- +	| Password Reset Controller +	|-------------------------------------------------------------------------- +	| +	| This controller is responsible for handling password reset emails and +	| includes a trait which assists in sending these notifications from +	| your application to your users. Feel free to explore this trait. +	| +	*/ + +	use SendsPasswordResetEmails; + +	/** +	 * Create a new controller instance. +	 * +	 * @return void +	 */ +	public function __construct() +	{ +		$this->middleware('guest'); +	} +} diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php new file mode 100644 index 0000000..4c81bea --- /dev/null +++ b/app/Http/Controllers/Auth/LoginController.php @@ -0,0 +1,39 @@ +<?php + +namespace App\Http\Controllers\Auth; + +use App\Http\Controllers\Controller; +use Illuminate\Foundation\Auth\AuthenticatesUsers; + +class LoginController extends Controller +{ +	/* +	|-------------------------------------------------------------------------- +	| Login Controller +	|-------------------------------------------------------------------------- +	| +	| This controller handles authenticating users for the application and +	| redirecting them to your home screen. The controller uses a trait +	| to conveniently provide its functionality to your applications. +	| +	*/ + +	use AuthenticatesUsers; + +	/** +	 * Where to redirect users after login. +	 * +	 * @var string +	 */ +	protected $redirectTo = '/contribute'; + +	/** +	 * Create a new controller instance. +	 * +	 * @return void +	 */ +	public function __construct() +	{ +		$this->middleware('guest', ['except' => 'logout']); +	} +} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php new file mode 100644 index 0000000..ed46cab --- /dev/null +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -0,0 +1,76 @@ +<?php + +namespace App\Http\Controllers\Auth; + +use HebrewParseTrainer\User; +use Validator; +use App\Http\Controllers\Controller; +use Illuminate\Foundation\Auth\RegistersUsers; + +class RegisterController extends Controller +{ +	/* +	|-------------------------------------------------------------------------- +	| Register Controller +	|-------------------------------------------------------------------------- +	| +	| This controller handles the registration of new users as well as their +	| validation and creation. By default this controller uses a trait to +	| provide this functionality without requiring any additional code. +	| +	*/ + +	use RegistersUsers; + +	/** +	 * Where to redirect users after login / registration. +	 * +	 * @var string +	 */ +	protected $redirectTo = '/'; + +	/** +	 * Create a new controller instance. +	 * +	 * @return void +	 */ +	public function __construct() +	{ +		$this->middleware('guest'); +	} + +	/** +	 * Get a validator for an incoming registration request. +	 * +	 * @param  array  $data +	 * @return \Illuminate\Contracts\Validation\Validator +	 */ +	protected function validator(array $data) +	{ +		return Validator::make($data, [ +			'name' => 'required|max:255', +			'email' => 'required|email|max:255|unique:users', +			'password' => 'required|min:6|confirmed', +		]); +	} + +	/** +	 * Create a new user instance after a valid registration. +	 * +	 * @param  array  $data +	 * @return User +	 */ +	protected function create(array $data) +	{ +		$user = new User([ +			'name' => $data['name'], +			'email' => $data['email'], +		]); + +		$user->password = $data['password']; + +		$user->save(); + +		return $user; +	} +} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 0000000..98d1131 --- /dev/null +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,34 @@ +<?php + +namespace App\Http\Controllers\Auth; + +use App\Http\Controllers\Controller; +use Illuminate\Foundation\Auth\ResetsPasswords; + +class ResetPasswordController extends Controller +{ +	/* +	|-------------------------------------------------------------------------- +	| Password Reset Controller +	|-------------------------------------------------------------------------- +	| +	| This controller is responsible for handling password reset requests +	| and uses a simple trait to include this behavior. You're free to +	| explore this trait and override any methods you wish to tweak. +	| +	*/ + +	use ResetsPasswords; + +	protected $redirectTo = '/'; + +	/** +	 * Create a new controller instance. +	 * +	 * @return void +	 */ +	public function __construct() +	{ +		$this->middleware('guest'); +	} +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 0ccb918..03e02a2 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,9 +2,12 @@  namespace App\Http\Controllers; -use Laravel\Lumen\Routing\Controller as BaseController; +use Illuminate\Foundation\Bus\DispatchesJobs; +use Illuminate\Routing\Controller as BaseController; +use Illuminate\Foundation\Validation\ValidatesRequests; +use Illuminate\Foundation\Auth\Access\AuthorizesRequests;  class Controller extends BaseController  { -    // +    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;  } diff --git a/app/Http/Controllers/RandomVerbController.php b/app/Http/Controllers/RandomVerbController.php index 501440a..ceb5ff9 100644 --- a/app/Http/Controllers/RandomVerbController.php +++ b/app/Http/Controllers/RandomVerbController.php @@ -22,9 +22,8 @@ use HebrewParseTrainer\Verb;  use HebrewParseTrainer\RandomLog;  use Illuminate\Http\Request;  use Illuminate\Support\Facades\Input; -use Laravel\Lumen\Routing\Controller as BaseController; -class RandomVerbController extends BaseController { +class RandomVerbController extends Controller {  	public function show()  	{ diff --git a/app/Http/Controllers/RootController.php b/app/Http/Controllers/RootController.php index 3899754..5546a1d 100644 --- a/app/Http/Controllers/RootController.php +++ b/app/Http/Controllers/RootController.php @@ -21,12 +21,11 @@ namespace App\Http\Controllers;  use Illuminate\Http\Request;  use Illuminate\Support\Facades\Auth;  use Illuminate\Support\Facades\Validator; -use Laravel\Lumen\Routing\Controller as BaseController;  use HebrewParseTrainer\Root;  use HebrewParseTrainer\RootKind; -class RootController extends BaseController { +class RootController extends Controller {  	public function create(Request $request) {  		$_kinds = RootKind::all(); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php deleted file mode 100644 index 7036439..0000000 --- a/app/Http/Controllers/UserController.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * HebrewParseTrainer - practice Hebrew verbs - * Copyright (C) 2015  Camil Staps <info@camilstaps.nl> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ -namespace App\Http\Controllers; - -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Validator; -use Illuminate\Validation\ValidationException; -use Laravel\Lumen\Routing\Controller as BaseController; - -use HebrewParseTrainer\User; - -class UserController extends BaseController { - -	public function createForm(Request $request) { -		$messages = []; - -		if ($request->isMethod('post')) { -			$validator = Validator::make($request->input(), [ -				'email'    => 'required|unique:users|email', -				'name'     => 'required|unique:users', -				'password' => 'required|confirmed|min:8', -			]); - -			if ($validator->fails()) { -				foreach ($validator->errors()->all() as $error) { -					$messages[] = ['danger', $error]; -				} -			} else { -				$user = new User; -				$user->name = $request->input('name'); -				$user->email = $request->input('email'); -				$user->password = $request->input('password'); -				if ($user->save()) { -					$messages[] = ['success', 'Your account has been created.']; -				} else { -					$messages[] = ['danger', 'Your account could not be created.']; -				} -			} -		} - -		return view('user.create', -			[ -				'messages' => $messages, -				'form' => [ -					'email' => $request->input('email'), -					'name' => $request->input('name') -				] -			]); -	} - -} diff --git a/app/Http/Controllers/VerbController.php b/app/Http/Controllers/VerbController.php index 18cdd2f..59289c1 100644 --- a/app/Http/Controllers/VerbController.php +++ b/app/Http/Controllers/VerbController.php @@ -29,9 +29,8 @@ use Illuminate\Http\Request;  use Illuminate\Support\Facades\Auth;  use Illuminate\Support\Facades\Input;  use Illuminate\Support\Facades\Validator; -use Laravel\Lumen\Routing\Controller as BaseController; -class VerbController extends BaseController { +class VerbController extends Controller {  	public function random() {  		$verbs = Verb::where('active', 1)->get(); @@ -129,7 +128,7 @@ class VerbController extends BaseController {  		return true;  	} -	public function vote($choice, $verb_id) { +	public function vote($verb_id, $choice) {  		$verb = Verb::findOrFail($verb_id);  		$user = Auth::user(); diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 0000000..85782f3 --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,56 @@ +<?php + +namespace App\Http; + +use Illuminate\Foundation\Http\Kernel as HttpKernel; + +class Kernel extends HttpKernel +{ +    /** +     * The application's global HTTP middleware stack. +     * +     * These middleware are run during every request to your application. +     * +     * @var array +     */ +    protected $middleware = [ +        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, +    ]; + +    /** +     * The application's route middleware groups. +     * +     * @var array +     */ +    protected $middlewareGroups = [ +        'web' => [ +            \App\Http\Middleware\EncryptCookies::class, +            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, +            \Illuminate\Session\Middleware\StartSession::class, +            \Illuminate\View\Middleware\ShareErrorsFromSession::class, +            \App\Http\Middleware\VerifyCsrfToken::class, +            \Illuminate\Routing\Middleware\SubstituteBindings::class, +        ], + +        'api' => [ +            'throttle:60,1', +            'bindings', +        ], +    ]; + +    /** +     * The application's route middleware. +     * +     * These middleware may be assigned to groups or used individually. +     * +     * @var array +     */ +    protected $routeMiddleware = [ +        'auth' => \Illuminate\Auth\Middleware\Authenticate::class, +        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, +        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, +        'can' => \Illuminate\Auth\Middleware\Authorize::class, +        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, +				'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, +    ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php deleted file mode 100644 index 6db8bb0..0000000 --- a/app/Http/Middleware/Authenticate.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php - -namespace App\Http\Middleware; - -use Closure; -use Illuminate\Contracts\Auth\Factory as Auth; - -class Authenticate -{ -	/** -	 * The authentication guard factory instance. -	 * -	 * @var \Illuminate\Contracts\Auth\Factory -	 */ -	protected $auth; - -	/** -	 * Create a new middleware instance. -	 * -	 * @param  \Illuminate\Contracts\Auth\Factory  $auth -	 * @return void -	 */ -	public function __construct(Auth $auth) -	{ -		$this->auth = $auth; -	} - -	/** -	 * Handle an incoming request. -	 * -	 * @param  \Illuminate\Http\Request  $request -	 * @param  \Closure  $next -	 * @param  string|null  $guard -	 * @return mixed -	 */ -	public function handle($request, Closure $next, $guard = null) -	{ -		if ($this->auth->guard($guard)->guest()) { -			return response('Unauthorized.', 401) -				->header('WWW-Authenticate', 'Basic realm="Please enter your email and password"'); -		} - -		return $next($request); -	} -} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..3aa15f8 --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter; + +class EncryptCookies extends BaseEncrypter +{ +    /** +     * The names of the cookies that should not be encrypted. +     * +     * @var array +     */ +    protected $except = [ +        // +    ]; +} diff --git a/app/Http/Middleware/Login.php b/app/Http/Middleware/Login.php deleted file mode 100644 index 8a71104..0000000 --- a/app/Http/Middleware/Login.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php - -namespace App\Http\Middleware; - -use Closure; -use Illuminate\Support\Facades\Auth; - -class Login { -	/** -	 * Create a new middleware instance. -	 * -	 * @param  \Illuminate\Contracts\Auth\Factory  $auth -	 * @return void -	 */ -	public function __construct() { -	} - -	/** -	 * Handle an incoming request. -	 * -	 * @param  \Illuminate\Http\Request  $request -	 * @param  \Closure  $next -	 * @param  string|null  $guard -	 * @return mixed -	 */ -	public function handle($request, Closure $next, $guard = null) { -		if ($request->has('login') && !Auth::check()) { -			return response('Unauthorized.', 401) -				->header('WWW-Authenticate', 'Basic realm="Please enter your email and password"'); -		} - -		return $next($request); -	} -} diff --git a/app/Http/Middleware/ExampleMiddleware.php b/app/Http/Middleware/RedirectIfAuthenticated.php index 166581c..e27860e 100644 --- a/app/Http/Middleware/ExampleMiddleware.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -3,18 +3,24 @@  namespace App\Http\Middleware;  use Closure; +use Illuminate\Support\Facades\Auth; -class ExampleMiddleware +class RedirectIfAuthenticated  {      /**       * Handle an incoming request.       *       * @param  \Illuminate\Http\Request  $request       * @param  \Closure  $next +     * @param  string|null  $guard       * @return mixed       */ -    public function handle($request, Closure $next) +    public function handle($request, Closure $next, $guard = null)      { +        if (Auth::guard($guard)->check()) { +            return redirect('/'); +        } +          return $next($request);      }  } diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..a2c3541 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ +<?php + +namespace App\Http\Middleware; + +use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; + +class VerifyCsrfToken extends BaseVerifier +{ +    /** +     * The URIs that should be excluded from CSRF verification. +     * +     * @var array +     */ +    protected $except = [ +        // +    ]; +} diff --git a/app/Http/routes.php b/app/Http/routes.php deleted file mode 100644 index b233efa..0000000 --- a/app/Http/routes.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * HebrewParseTrainer - practice Hebrew verbs - * Copyright (C) 2015  Camil Staps <info@camilstaps.nl> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program.  If not, see <http://www.gnu.org/licenses/>. - */ - -/* -|-------------------------------------------------------------------------- -| Application Routes -|-------------------------------------------------------------------------- -| -| Here is where you can register all of the routes for an application. -| It is a breeze. Simply tell Lumen the URIs it should respond to -| and give it the Closure to call when that URI is requested. -| -*/ - -$app->group( -	[ -		'prefix' => parse_url(env('APP_URL'), PHP_URL_PATH), -		'middleware' => 'login' -	], -	function ($app) { - -		$app->get('/', function () use ($app) { -			return view('trainer'); -		}); - -		$app->get('/stem', function () use ($app) { -			return \HebrewParseTrainer\Stem::all(); -		}); - -		$app->get('/tense', function () use ($app) { -			return \HebrewParseTrainer\Tense::all(); -		}); - -		$app->get('/verb/random', -			'App\Http\Controllers\VerbController@random'); - -		$app->get('/logout', function () use ($app) { -			return response('You have been logged out.', 401) -				->header( -					'WWW-Authenticate', -					'Basic realm="Please click OK, then Cancel to logout."'); -		}); - -		$app->get('/contribute', function () use ($app) { -			return view('contribute'); -		}); - -		$app->get('/user/create', -			'App\Http\Controllers\UserController@createForm'); -		$app->post('/user/create', -			'App\Http\Controllers\UserController@createForm'); - -		$app->group( -			['middleware' => 'auth:basic-http'], -			function ($app) { - -				$app->get('/stats', function () use ($app) { -					return view('stats'); -				}); - -				$app->get('/verb/{id}/vote/{choice}', -					'App\Http\Controllers\VerbController@vote'); - -				$app->post('/verb/suggest', -					'App\Http\Controllers\VerbController@suggest'); - -				$app->post('/root/create', -					'App\Http\Controllers\RootController@create'); - -			}); - -}); | 
