Skip to content

Commit

Permalink
Add middleware for require verify email logic
Browse files Browse the repository at this point in the history
  • Loading branch information
zhengjinghua committed Aug 17, 2016
1 parent f357d00 commit acdb744
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 24 deletions.
13 changes: 2 additions & 11 deletions app/Http/Controllers/RepliesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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'));
}

Expand Down Expand Up @@ -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.'),
Expand All @@ -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.'),
Expand All @@ -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'));
}

}
}
8 changes: 0 additions & 8 deletions app/Http/Controllers/TopicsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand 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'));
}

Expand Down
3 changes: 2 additions & 1 deletion app/Http/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
17 changes: 17 additions & 0 deletions app/Http/Middleware/RequireVerifiedEmail.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class RequireVerifiedEmail
{
public function handle($request, Closure $next)
{
if (Auth::check() && !Auth::user()->verified) {
return redirect(route('email-verification-required'));
}
return $next($request);
}
}
8 changes: 4 additions & 4 deletions routes/web.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?php
<?php
# ------------------ Page Route ------------------------
Route::get('/', 'PagesController@home')->name('home');
Route::get('/about', 'PagesController@about')->name('about');
Expand Down Expand Up @@ -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');
Expand Down

0 comments on commit acdb744

Please sign in to comment.