From 62fa8f2da7afd26a37e4423356378f47de7cebe8 Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Tue, 8 Apr 2025 13:16:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E8=80=85=EF=BC=8C=E6=AC=8A?= =?UTF-8?q?=E9=99=90=EF=BC=8C=E5=95=86=E5=93=81=20=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E7=95=AB=E9=9D=A2=2020250408?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 2 +- app/Http/Controllers/Controller.php | 11 +++- app/Http/Controllers/ProductController.php | 1 + app/Http/Controllers/UserController.php | 2 +- .../livewire/layout/navigation.blade.php | 9 +++ resources/views/products/create.blade.php | 41 +++++++++++++ resources/views/products/edit.blade.php | 40 +++++++++++++ resources/views/products/index.blade.php | 55 ++++++++++++++++++ resources/views/products/show.blade.php | 33 +++++++++++ resources/views/roles/create.blade.php | 48 +++++++++++++++ resources/views/roles/edit.blade.php | 49 ++++++++++++++++ resources/views/roles/index.blade.php | 54 +++++++++++++++++ resources/views/roles/show.blade.php | 42 ++++++++++++++ resources/views/users/create.blade.php | 46 +++++++++++++++ resources/views/users/edit.blade.php | 51 ++++++++++++++++ resources/views/users/index.blade.php | 58 +++++++++++++++++++ resources/views/users/show.blade.php | 44 ++++++++++++++ routes/web.php | 8 ++- 18 files changed, 588 insertions(+), 6 deletions(-) create mode 100644 resources/views/products/create.blade.php create mode 100644 resources/views/products/edit.blade.php create mode 100644 resources/views/products/index.blade.php create mode 100644 resources/views/products/show.blade.php create mode 100644 resources/views/roles/create.blade.php create mode 100644 resources/views/roles/edit.blade.php create mode 100644 resources/views/roles/index.blade.php create mode 100644 resources/views/roles/show.blade.php create mode 100644 resources/views/users/create.blade.php create mode 100644 resources/views/users/edit.blade.php create mode 100644 resources/views/users/index.blade.php create mode 100644 resources/views/users/show.blade.php diff --git a/.env.example b/.env.example index 418babf..d5aa43a 100644 --- a/.env.example +++ b/.env.example @@ -3,7 +3,7 @@ APP_ENV=local APP_KEY= APP_DEBUG=true APP_TIMEZONE=Asia/Taipei -APP_URL=https://shop_12.test +APP_URL=https://community-management.test APP_LOCALE=zh-TW APP_FALLBACK_LOCALE=zh-TW diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 8677cd5..858c1b1 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,7 +2,12 @@ namespace App\Http\Controllers; -abstract class Controller +use Illuminate\Foundation\Auth\Access\AuthorizesRequests; +use Illuminate\Foundation\Bus\DispatchesJobs; +use Illuminate\Foundation\Validation\ValidatesRequests; +use Illuminate\Routing\Controller as BaseController; + +class Controller extends BaseController { - // -} + use AuthorizesRequests, DispatchesJobs, ValidatesRequests; +} \ No newline at end of file diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index 1c8d89a..049a78c 100644 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Controllers\Controller; use App\Models\Product; use Illuminate\Http\Request; use Illuminate\View\View; diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index ef471f5..fc70f3d 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -50,7 +50,7 @@ class UserController extends Controller $this->validate($request, [ 'name' => 'required', 'email' => 'required|email|unique:users,email', - 'password' => 'required|same:confirm-password', + 'password' => 'required|same:confirm_password', 'roles' => 'required' ]); diff --git a/resources/views/livewire/layout/navigation.blade.php b/resources/views/livewire/layout/navigation.blade.php index 6f62113..89ee680 100644 --- a/resources/views/livewire/layout/navigation.blade.php +++ b/resources/views/livewire/layout/navigation.blade.php @@ -33,6 +33,15 @@ new class extends Component {{ __('Dashboard') }} + + {{ __('Manage Users') }} + + + {{ __('Manage Role') }} + + + {{ __('Manage Product') }} + diff --git a/resources/views/products/create.blade.php b/resources/views/products/create.blade.php new file mode 100644 index 0000000..4fa787a --- /dev/null +++ b/resources/views/products/create.blade.php @@ -0,0 +1,41 @@ + + +

+ {{ __('Create New Product') }} +

+
+ +
+
+
+ + @if ($errors->any()) +
+ {{ __('Whoops!') }} {{ __('There were some problems with your input.') }}

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + +
+ {{__('Back')}} +
+ + +
+ @csrf + + + + +
+ {{__('Submit')}} +
+ +
+
+
+
diff --git a/resources/views/products/edit.blade.php b/resources/views/products/edit.blade.php new file mode 100644 index 0000000..d75c728 --- /dev/null +++ b/resources/views/products/edit.blade.php @@ -0,0 +1,40 @@ + + +

+ {{ __('Edit Product') }} +

+
+ +
+
+
+ + @if (count($errors) > 0) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + +
+ {{__('Back')}} +
+ + +
+ @csrf + @method('PUT') + + +
+ {{__('Submit')}} +
+ +
+
+
+
diff --git a/resources/views/products/index.blade.php b/resources/views/products/index.blade.php new file mode 100644 index 0000000..d38ef27 --- /dev/null +++ b/resources/views/products/index.blade.php @@ -0,0 +1,55 @@ + + +

+ {{ __('Products Management') }} +

+
+ +
+
+
+ @if(session('message')) + {{ session('message') }} + @endif +
+

{{__('Products List')}}

+ @can('product-create') + {{__('Create New Product')}} + @endcan +
+ + + {{__('No')}} + {{__('Name')}} + {{__('Details')}} + {{__('Action')}} + + @foreach ($products as $key => $product) + + {{ ++$i }} + {{ $product->name }} + {{ $product->detail }} + + {{__('Show')}} + @can('product-edit') + {{__('Edit')}} + @endcan + @can('product-delete') +
+ @csrf + @method('DELETE') + {{__('Delete')}} +
+ @endcan + + + @endforeach +
+ +
+ {!! $products->links('pagination::tailwind') !!} +
+
+
+
+
diff --git a/resources/views/products/show.blade.php b/resources/views/products/show.blade.php new file mode 100644 index 0000000..99ba33b --- /dev/null +++ b/resources/views/products/show.blade.php @@ -0,0 +1,33 @@ + + +

+ {{ __('Show Product') }} +

+
+ +
+
+
+
+ {{__('Back')}} +
+ + + + + + {{ $product->name }} + + + + + + {{ $product->detail }} + + + + +
+
+
+
diff --git a/resources/views/roles/create.blade.php b/resources/views/roles/create.blade.php new file mode 100644 index 0000000..df7c877 --- /dev/null +++ b/resources/views/roles/create.blade.php @@ -0,0 +1,48 @@ + + +

+ {{ __('Create New Role') }} +

+
+ +
+
+
+ + @if ($errors->any()) +
+ {{ __('Whoops!') }} {{ __('There were some problems with your input.') }}

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+ {{__('Back')}} +
+
+ @csrf + + +
+ +
+ @foreach($permission as $value) + + @endforeach +
+
+ +
+ {{__('Submit')}} +
+ +
+
+
+
diff --git a/resources/views/roles/edit.blade.php b/resources/views/roles/edit.blade.php new file mode 100644 index 0000000..041db21 --- /dev/null +++ b/resources/views/roles/edit.blade.php @@ -0,0 +1,49 @@ + + +

+ {{ __('Edit Role') }} +

+
+ +
+
+
+ @if (count($errors) > 0) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+ {{__('Back')}} +
+ +
+ @csrf + @method('PUT') + + +
+ +
+ @foreach($permission as $value) + + @endforeach +
+
+ +
+ {{__('Submit')}} +
+ +
+
+
+
\ No newline at end of file diff --git a/resources/views/roles/index.blade.php b/resources/views/roles/index.blade.php new file mode 100644 index 0000000..cbee4bb --- /dev/null +++ b/resources/views/roles/index.blade.php @@ -0,0 +1,54 @@ + + +

+ {{ __('Role Management') }} +

+
+ +
+
+
+ @if(session('message')) + {{ session('message') }} + @endif + +
+

{{__('Role List')}}

+ @can('role-create') + {{__('Create New Role')}} + @endcan +
+ + + {{__('No')}} + {{__('Name')}} + {{__('Action')}} + + @foreach ($roles as $key => $role) + + {{ ++$i }} + {{ $role->name }} + + {{__('Show')}} + @can('role-edit') + {{__('Edit')}} + @endcan + @can('role-delete') +
+ @csrf + @method('DELETE') + {{__('Delete')}} +
+ @endcan + + + @endforeach +
+ +
+ {!! $roles->links('pagination::tailwind') !!} +
+
+
+
+
diff --git a/resources/views/roles/show.blade.php b/resources/views/roles/show.blade.php new file mode 100644 index 0000000..57f23a1 --- /dev/null +++ b/resources/views/roles/show.blade.php @@ -0,0 +1,42 @@ + + +

+ {{ __('Show Role') }} +

+
+ +
+
+
+
+ {{__('Back')}} +
+ + + + + + + {{ $role->name }} + + + + +
+ @forelse($rolePermissions as $v) + + {{ $v->name }} + + @empty + + {{__('No permission information')}} + + @endforelse +
+
+
+
+
+
+
+
diff --git a/resources/views/users/create.blade.php b/resources/views/users/create.blade.php new file mode 100644 index 0000000..b6c3a65 --- /dev/null +++ b/resources/views/users/create.blade.php @@ -0,0 +1,46 @@ + + +

+ {{ __('Create New User') }} +

+
+ +
+
+
+ @if ($errors->any()) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+ {{__('Back')}} +
+
+ @csrf + + + + +
+ + +
+ +
+ {{__('Submit')}} +
+ +
+
+
+
diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php new file mode 100644 index 0000000..60c1870 --- /dev/null +++ b/resources/views/users/edit.blade.php @@ -0,0 +1,51 @@ + + +

+ {{ __('Edit User') }} +

+
+ +
+
+
+ @if ($errors->any()) +
+ Whoops! There were some problems with your input.

+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif +
+ {{__('Back')}} +
+ +
+ @csrf + @method('PUT') + + + + + +
+ + +
+ +
+ {{__('Submit')}} +
+ +
+
+
+
\ No newline at end of file diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php new file mode 100644 index 0000000..4d58956 --- /dev/null +++ b/resources/views/users/index.blade.php @@ -0,0 +1,58 @@ + + +

+ {{ __('Users Management') }} +

+
+ +
+
+
+ @if(session('message')) + {{ session('message') }} + @endif + +
+

{{__('User List')}}

+ {{__('Create New User')}} +
+ + + + {{__('No')}} + {{__('Name')}} + {{__('Email')}} + {{__('Roles')}} + {{__('Action')}} + + @foreach ($data as $key => $user) + + {{ ++$i }} + {{ $user->name }} + {{ $user->email }} + + @if(!empty($user->getRoleNames())) + @foreach($user->getRoleNames() as $v) + {{ $v }} + @endforeach + @endif + + + {{__('Show')}} + {{__('Edit')}} +
+ @csrf + @method('DELETE') + {{__('Delete')}} +
+ + + @endforeach +
+
+ {!! $data->links('pagination::tailwind') !!} +
+
+
+
+
\ No newline at end of file diff --git a/resources/views/users/show.blade.php b/resources/views/users/show.blade.php new file mode 100644 index 0000000..9619c36 --- /dev/null +++ b/resources/views/users/show.blade.php @@ -0,0 +1,44 @@ + + +

+ {{ __('Show User') }} +

+
+ +
+
+
+
+ {{__('Back')}} +
+ + + + + + {{ $user->name }} + + + + + + {{ $user->email }} + + + + + + @if(!empty($user->getRoleNames())) + @foreach($user->getRoleNames() as $v) + + {{ $v }} + + @endforeach + @endif + + + +
+
+
+
diff --git a/routes/web.php b/routes/web.php index e9d9868..54caa91 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,7 @@ session()->invalidate(); + request()->session()->regenerateToken(); + return redirect('/'); +})->name('logout'); Route::get('/home', [HomeController::class, 'index'])->name('home'); Route::group(['middleware' => ['auth']], function() {