forgetCachedPermissions(); // Cập nhật permissions DB::table('permissions') ->where('guard_name', 'admins') ->update(['guard_name' => 'admin']); // Cập nhật roles DB::table('roles') ->where('guard_name', 'admins') ->update(['guard_name' => 'admin']); $this->command->info('✅ Đã cập nhật guard_name: admins → admin cho ' . Role::where('guard_name', 'admin')->count() . ' roles, ' . Permission::where('guard_name', 'admin')->count() . ' permissions.'); // Đảm bảo 6 roles tồn tại với guard admin $roles = [ 'Full Administrator', 'Administrator', 'Sale', 'IT', 'Customer Service', 'Marketing', ]; foreach ($roles as $name) { Role::firstOrCreate([ 'name' => $name, 'guard_name' => 'admin', ]); } // Full Administrator luôn có tất cả permissions $fullAdmin = Role::where('name', 'Full Administrator') ->where('guard_name', 'admin') ->first(); if ($fullAdmin) { $fullAdmin->syncPermissions( Permission::where('guard_name', 'admin')->get() ); $this->command->info('✅ Full Administrator đã được cấp tất cả quyền.'); } // Administrator được cấp một số quyền cơ bản $admin = Role::where('name', 'Administrator') ->where('guard_name', 'admin') ->first(); if ($admin) { $adminPermissions = [ 'customer.view', 'customer.create', 'customer.edit', 'customer.manager', 'product-service.view', 'product-service.create', 'product-service.edit', 'product-service.manager', 'order.view', 'order.create', 'order.edit', 'order.manager', 'administrator.view', 'administrator.manager', ]; $perms = Permission::whereIn('name', $adminPermissions) ->where('guard_name', 'admin') ->get(); $admin->syncPermissions($perms); $this->command->info('✅ Administrator đã được cấp quyền: ' . implode(', ', $adminPermissions)); } app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions(); } }