Код: Выделить всё
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;
Route::middleware('auth:api')->group(function () {
Route::middleware('role:admin')->group(function () {
Route::apiResource('users', UserController::class);
}
}
Код: Выделить всё
use App\Models\User;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
class UserController extends Controller
{
public function index()
{
$users = User::with('roles')->get();
// Transform the response to include user details and their roles
$response = $users->map(function ($user) {
return [
'id' => $user->id,
'first_name' => $user->first_name,
'last_name' => $user->last_name,
'email' => $user->email,
'phone_number' => $user->phone_number,
'address' => $user->address,
'roles' => $user->roles->pluck('name')
];
});
return response()->json($response);
}
}
Код: Выделить всё
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable implements JWTSubject
{
use HasFactory, Notifiable, HasRoles;
....
}
использовать App\Http\Controllers\RolePermissionController;
Route::middleware('auth:api')->group(function () {
Код: Выделить всё
Route::middleware([RoleMiddleware::class . ':admin'])->group(function () {
Route::apiResource('users', UserController::class);
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... permission