Tuyệt, để xây dựng giao diện quản lý người dùng và phân quyền với spatie/laravel-permission
Tuyệt, để xây dựng giao diện quản lý người dùng và phân quyền với spatie/laravel-permission, ta sẽ làm theo các bước sau:
✅ 1. Cài đặt mối quan hệ Role/Permission/User
Trong User model:
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
}✅ 2. Tạo Seeder cho Roles và Permissions
bphp artisan make:seeder RolePermissionSeederTrong database/seeders/RolePermissionSeeder.php:
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
public function run()
{
$permissions = [
'view page',
'create page',
'edit page',
'delete page',
'manage users',
'manage roles'
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
$admin = Role::firstOrCreate(['name' => 'admin']);
$admin->syncPermissions($permissions);
$editor = Role::firstOrCreate(['name' => 'editor']);
$editor->syncPermissions(['view page', 'edit page']);
$user = \App\Models\User::find(1); // hoặc user đầu tiên
if ($user) $user->assignRole('admin');
}
✅ 3. Tạo Controller quản lý User/Role/Permission
✅ 4. Route
Trong routes/web.php hoặc routes/admin.php:
routes\web.php
routes\admin.php
✅ 5. Giao diện phân quyền (UserController)
Trong UserController:
resources\views\admin\users\index.blade.php

resources\views\admin\users\edit.blade.php


Chúng ta sẽ bổ sung logic vào các phương thức create, store, và show.
app\Http\Controllers\Admin\UserController.php
resources\views\admin\users\create.blade.php
resources\views\admin\users\edit.blade.php
resources\views\admin\users\index.blade.php
resources\views\admin\users\show.blade.php



✅ 6. (Tùy chọn) Quản lý permission theo role
Tạo file database/seeders/PermissionSeeder.php
Middleware & Policy (global check)
bootstrap\app.php
Trong App\Providers\AuthServiceProvider:
Controller quản lý User / Role / Permission
app\Http\Controllers\Admin\UserController.php
Giao diện Blade
resources\views\admin\users\create.blade.php
resources\views\admin\users\edit.blade.php
resources\views\admin\users\index.blade.php
resources\views\admin\users\show.blade.php
routes\admin.php
Middleware Kiểm Tra Quyền
Trong PageController, thêm middleware:
View: Giao diện danh sách quyền
resources\views\admin\permissions\index.blade.php
Gợi ý: Nếu bạn muốn thêm tính năng tạo, sửa, xóa permission, tôi có thể bổ sung thêm các action và giao diện tương ứng (form, validate,...).
Last updated
Was this helpful?