From 33ad0c14d168d36a4e7ad42dc6aa6a37a7335849 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sun, 25 Sep 2016 23:56:46 +0200 Subject: Change from lumen 5.2 to laravel 5.3 (Resolves #1) --- .../Controllers/Auth/ForgotPasswordController.php | 32 ++++++++ app/Http/Controllers/Auth/LoginController.php | 39 ++++++++++ app/Http/Controllers/Auth/RegisterController.php | 76 +++++++++++++++++++ .../Controllers/Auth/ResetPasswordController.php | 34 +++++++++ app/Http/Controllers/Controller.php | 7 +- app/Http/Controllers/RandomVerbController.php | 3 +- app/Http/Controllers/RootController.php | 3 +- app/Http/Controllers/UserController.php | 67 ---------------- app/Http/Controllers/VerbController.php | 5 +- app/Http/Kernel.php | 56 ++++++++++++++ app/Http/Middleware/Authenticate.php | 45 ----------- app/Http/Middleware/EncryptCookies.php | 17 +++++ app/Http/Middleware/ExampleMiddleware.php | 20 ----- app/Http/Middleware/Login.php | 34 --------- app/Http/Middleware/RedirectIfAuthenticated.php | 26 +++++++ app/Http/Middleware/VerifyCsrfToken.php | 17 +++++ app/Http/routes.php | 88 ---------------------- 17 files changed, 306 insertions(+), 263 deletions(-) create mode 100644 app/Http/Controllers/Auth/ForgotPasswordController.php create mode 100644 app/Http/Controllers/Auth/LoginController.php create mode 100644 app/Http/Controllers/Auth/RegisterController.php create mode 100644 app/Http/Controllers/Auth/ResetPasswordController.php delete mode 100644 app/Http/Controllers/UserController.php create mode 100644 app/Http/Kernel.php delete mode 100644 app/Http/Middleware/Authenticate.php create mode 100644 app/Http/Middleware/EncryptCookies.php delete mode 100644 app/Http/Middleware/ExampleMiddleware.php delete mode 100644 app/Http/Middleware/Login.php create mode 100644 app/Http/Middleware/RedirectIfAuthenticated.php create mode 100644 app/Http/Middleware/VerifyCsrfToken.php delete mode 100644 app/Http/routes.php (limited to 'app/Http') 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 @@ +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 @@ +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 @@ +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 @@ +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 @@ - - * - * 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 . - */ -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 @@ + [ + \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 @@ -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 @@ +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/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..e27860e --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,26 @@ +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 @@ + - * - * 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 . - */ - -/* -|-------------------------------------------------------------------------- -| 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'); - - }); - -}); -- cgit v1.2.3