4 Commits
v0.1 ... v0.2

6 changed files with 67 additions and 37 deletions

11
app/FlashMessage.php Normal file
View File

@@ -0,0 +1,11 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class FlashMessage extends Model
{
const PRIMARY = 'primary';
const DANGER = 'danger';
}

View File

@@ -8,6 +8,7 @@ use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use App\FlashMessage;
class RegisterController extends Controller
{
@@ -72,6 +73,8 @@ class RegisterController extends Controller
\Mail::to($user)->send(new Welcome($user));
session()->flash(FlashMessage::PRIMARY, 'Thanks for registering. Please, do not forget to validate your e-mail address.');
return $user;
}
}

View File

@@ -5,13 +5,17 @@ namespace App\Http\Controllers;
use \App\Item;
use \App\User;
use Illuminate\Http\Request;
use App\FlashMessage as flash;
class ItemController extends Controller
{
public function show($id)
{
$item = Item::find($id);
if (!$item || $item->product->user_id != \Auth::id()) return back();
if (!$item || $item->product->user_id != \Auth::id()) {
session()->flash(flash::DANGER, "The item doesn't exist.");
return back();
}
$users = $item->users()->get();
$otherItems = Item::where([['product_id', $item->product_id], ['id', '!=', $id]])->get();

View File

@@ -6,6 +6,7 @@ use \App\Item;
use \App\User;
use \App\Product;
use Illuminate\Http\Request;
use App\FlashMessage as flash;
class ProductController extends Controller
{
@@ -70,8 +71,8 @@ class ProductController extends Controller
$product = Product::fromAuthUser()->find($id);
if (!$product) {
return back();
session()->flash(flash::DANGER, "The product doesn't exist or doesn't belongs to you.");
return redirect('/product');
}
return view('product.show', compact('product'));
}

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -19,6 +20,7 @@
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<nav class="navbar navbar-expand-md navbar-light navbar-laravel">
@@ -26,7 +28,8 @@
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name', 'Laravel') }}
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
<span class="navbar-toggler-icon"></span>
</button>
@@ -48,13 +51,13 @@
</li>
@else
<li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" v-pre>
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault();
<a class="dropdown-item" href="{{ route('logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
@@ -70,9 +73,17 @@
</div>
</nav>
@if ($flashMsg = session('primary'))
<div class="alert alert-primary text-center" role="alert">{{ $flashMsg }}</div>
@endif
@if ($flashMsg = session('danger'))
<div class="alert alert-danger text-center" role="alert">{{ $flashMsg }}</div>
@endif
<main class="py-4">
@yield('content')
</main>
</div>
</body>
</html>

View File

@@ -15,7 +15,7 @@ Route::get('/', function () {
return view('welcome');
});
Route::get('/product', 'ProductController@index')->middleware('auth');
Route::get('/product', 'ProductController@index')->middleware('verified');
Route::get('/product/{product}', 'ProductController@show')->middleware('verified');
Route::post('/product', 'ProductController@store')->middleware('verified');
Route::patch('/product', 'ProductController@patch')->middleware('verified');