/**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $urlArray = explode('/', $request->url());
     for ($i = 0; $i < count($urlArray); $i++) {
         if ($urlArray[$i] == 'forum') {
             $forum = ForumForum::findOrFail($urlArray[$i + 1]);
             if ($forum->getPermissionModerer() == 1) {
                 return $next($request);
             }
             if (Auth::user() != NULL) {
                 if (Auth::user()->rang()->first()->getId() >= $forum->getPermissionModerer()) {
                     return $next($request);
                 }
             }
         }
         if ($urlArray[$i] == 'topic' && $urlArray[$i + 2] == 'edit') {
             $topic = ForumTopic::findOrFail($urlArray[$i + 1]);
             if (Auth::user() != NULL) {
                 if (Auth::user()->getId() == $topic->createur()->first()->getId()) {
                     return $next($request);
                 }
             }
         }
         if ($urlArray[$i] == 'post' && $urlArray[$i + 2] == 'edit') {
             $post = ForumPost::findOrFail($urlArray[$i + 1]);
             if (Auth::user() != NULL) {
                 if (Auth::user()->getId() == $post->createur()->first()->getId()) {
                     return $next($request);
                 }
             }
         }
     }
     return new RedirectResponse(url('/forum/' . $forum->getId() . '/topic'));
 }
 /**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index($idForum)
 {
     $ajouter = false;
     $forum = ForumForum::findOrFail($idForum);
     $topics = ForumTopic::where('forum_id', '=', $idForum)->orderBy('topic_genre', 'desc')->paginate(10);
     $lastPosts = array();
     $firstPosts = array();
     foreach ($topics as $topic) {
         $lastPost = ForumPost::findOrFail($topic->getLastPostId());
         array_push($lastPosts, $lastPost);
         $firstPost = ForumPost::findOrFail($topic->getFirstPostId());
         array_push($firstPosts, $firstPost);
     }
     // tester autorisation d'ajout
     if (Auth::user() != NULL) {
         if (Auth::user()->rang()->first()->getId() >= $forum->getPermissionTopic()) {
             $ajouter = true;
         }
     }
     return view('forum.topics')->with(compact('topics', 'forum', 'lastPosts', 'firstPosts', 'ajouter'));
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($idForum, $idTopic, $id)
 {
     //
     $post = ForumPost::findOrFail($id);
     if ($post->getIsDelete() == false) {
         $post->setIsDelete(true);
         $post->save();
     } else {
         $post->setIsDelete(false);
         $post->save();
     }
     return redirect('forum/' . $idForum . '/topic/' . $idTopic . '/post');
 }