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