From acdb7442f59161ed999f9f05cb116efc11669e21 Mon Sep 17 00:00:00 2001 From: zhengjinghua Date: Wed, 17 Aug 2016 22:31:11 +0800 Subject: [PATCH] Add middleware for require verify email logic --- app/Http/Controllers/RepliesController.php | 13 ++----------- app/Http/Controllers/TopicsController.php | 8 -------- app/Http/Kernel.php | 3 ++- app/Http/Middleware/RequireVerifiedEmail.php | 17 +++++++++++++++++ routes/web.php | 8 ++++---- 5 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 app/Http/Middleware/RequireVerifiedEmail.php diff --git a/app/Http/Controllers/RepliesController.php b/app/Http/Controllers/RepliesController.php index e337eef5..0a7bdfd4 100644 --- a/app/Http/Controllers/RepliesController.php +++ b/app/Http/Controllers/RepliesController.php @@ -18,13 +18,6 @@ public function __construct() public function store(StoreReplyRequest $request) { - if(!Auth::user()->verified) { - return response([ - 'status' => 500, - 'message' => lang('You need to verify the email for commenting.'), - ]); - } - return app('Phphub\Creators\ReplyCreator')->create($this, $request->except('_token')); } @@ -61,7 +54,7 @@ public function destroy($id) public function creatorFailed($errors) { - if (Request::ajax()){ + if (Request::ajax()) { return response([ 'status' => 500, 'message' => lang('Operation failed.'), @@ -70,14 +63,13 @@ public function creatorFailed($errors) Flash::error(lang('Operation failed.')); return Redirect::back(); } - } public function creatorSucceed($reply) { $reply->user->image_url = $reply->user->present()->gravatar; - if (Request::ajax()){ + if (Request::ajax()) { return response([ 'status' => 200, 'message' => lang('Operation succeeded.'), @@ -88,6 +80,5 @@ public function creatorSucceed($reply) Flash::success(lang('Operation succeeded.')); return Redirect::route('topics.show', array(Request::get('topic_id'), '#last-reply')); } - } } diff --git a/app/Http/Controllers/TopicsController.php b/app/Http/Controllers/TopicsController.php index fabe8b1c..a451be37 100644 --- a/app/Http/Controllers/TopicsController.php +++ b/app/Http/Controllers/TopicsController.php @@ -40,10 +40,6 @@ public function index(Request $request, Topic $topic) public function create(Request $request) { - if (!Auth::user()->verified) { - return redirect(route('email-verification-required')); - } - $category = Category::find($request->input('category_id')); $categories = Category::all(); @@ -52,10 +48,6 @@ public function create(Request $request) public function store(StoreTopicRequest $request) { - if (!Auth::user()->verified) { - return redirect(route('email-verification-required')); - } - return app('Phphub\Creators\TopicCreator')->create($this, $request->except('_token')); } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index fb4359b6..f63be520 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -36,7 +36,8 @@ class Kernel extends HttpKernel 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'admin_auth' => \App\Http\Middleware\AdminAuth::class, - + 'verified_email' => \App\Http\Middleware\RequireVerifiedEmail::class, + // API 'oauth2' => \App\Http\Middleware\OAuthMiddleware::class, 'check-authorization-params' => \LucaDegasperi\OAuth2Server\Middleware\CheckAuthCodeRequestMiddleware::class, diff --git a/app/Http/Middleware/RequireVerifiedEmail.php b/app/Http/Middleware/RequireVerifiedEmail.php new file mode 100644 index 00000000..a1129d91 --- /dev/null +++ b/app/Http/Middleware/RequireVerifiedEmail.php @@ -0,0 +1,17 @@ +verified) { + return redirect(route('email-verification-required')); + } + return $next($request); + } +} diff --git a/routes/web.php b/routes/web.php index e94f4373..bc16655c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,4 +1,4 @@ -name('home'); Route::get('/about', 'PagesController@about')->name('about'); @@ -68,13 +68,13 @@ # ------------------ Replies ------------------------ -Route::post('/replies', 'RepliesController@store')->name('replies.store'); +Route::post('/replies', 'RepliesController@store')->name('replies.store')->middleware('verified_email'); Route::delete('replies/delete/{id}', 'RepliesController@destroy')->name('replies.destroy')->middleware('auth'); # ------------------ Topic ------------------------ Route::get('/topics', 'TopicsController@index')->name('topics.index'); -Route::get('/topics/create', 'TopicsController@create')->name('topics.create'); -Route::post('/topics', 'TopicsController@store')->name('topics.store'); +Route::get('/topics/create', 'TopicsController@create')->name('topics.create')->middleware('verified_email'); +Route::post('/topics', 'TopicsController@store')->name('topics.store')->middleware('verified_email'); Route::get('/topics/{id}', 'TopicsController@show')->name('topics.show'); Route::get('/topics/{id}/edit', 'TopicsController@edit')->name('topics.edit'); Route::patch('/topics/{id}', 'TopicsController@update')->name('topics.update');