/**
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
  */
 public function index()
 {
     if (Auth::Check()) {
         $user = Auth::user();
         $this->request->setTrustedProxies(array('192.0.0.1', '10.0.0.0/8'));
         $this->user->addIp($user, $this->request);
         if ($user->role == 'user') {
             return view('/code/index', compact('user'));
         } else {
             return redirect('/admin/home');
         }
     } else {
         return view('/errors/404');
     }
 }
 /**
  * Determine if the user is authorized to make this request.
  *
  * @return bool
  */
 public function authorize()
 {
     return Auth::Check();
 }
 /**
  * Retourne de plus amples informations sur un objet mis en vente
  *
  * @param Request $request
  * @param int $item_id Identifiant de l'item
  * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function see(Request $request, $item_id)
 {
     $item = Items::withTrashed()->select(['id', 'user_id', 'category_id', 'name', 'description', 'photo', 'price', 'date_start', 'date_end'])->where('id', $item_id)->first();
     $isSeller = $item != null ? $item->isSeller() : false;
     $starting = false;
     // La vente n'a pas encore débutée
     $started = false;
     // La vente est en cours
     $finished = false;
     // La vente est terminé
     // Une vente qui n'a pas démarrée ou qui est terminée n'est accessible par personne, sauf par le propriétaire de la vente
     if ($item !== null) {
         // La vente démarrera bientôt
         if (strtotime($item->date_start) - time() > 0) {
             if ($isSeller) {
                 $starting = true;
                 $request->session()->flash('message', 'info|La vente débutera le ' . strftime('%A %d %B %Y', strtotime($item->date_start)) . '.');
             }
             // La vente est terminée
         } elseif (strtotime($item->date_end) - time() < 0) {
             $finished = true;
             $request->session()->flash('message', 'info|La vente s\'est terminée le ' . strftime('%A %d %B %Y', strtotime($item->date_end)) . '.');
             // La vente est en cours
         } else {
             $started = true;
         }
     }
     // Voir le tableau des accès selon les différents critères dans le cahier des charges
     if ($item === null || !$isSeller && $starting) {
         $request->session()->flash('message', 'danger|Cette vente n\'existe pas.');
         return redirect(route('items'));
     }
     $item->form_id = 'form_' . $item->id;
     $item->userIsSeller = $isSeller;
     $item->lastBidPrice = $item->getPrice();
     $item->userBidsCount = $item->getUserBidsCount();
     $item->userCantBid = Auth::Check() && $item->userBidsCount >= MAX_BID_PER_SALE;
     return view('item')->with(compact('item', 'started', 'starting', 'finished'));
 }
 /**
  * Détermine si l'utilisateur peut renchérir cette annonce ou non
  *
  * @return bool
  */
 public function getUserCantBid()
 {
     return Auth::Check() && $this->userBidsCount >= MAX_BID_PER_SALE;
 }