Skip to content

Commit a0234ae

Browse files
author
Gareth Redfern
committed
add isAdmin user helper, protect users unless isAdmin
1 parent 7a28798 commit a0234ae

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

app/Http/Controllers/UserController.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use App\Models\User;
66
use Illuminate\Http\Request;
77
use App\Http\Resources\UserResource;
8+
use Illuminate\Support\Facades\Auth;
89

910
class UserController extends Controller
1011
{
@@ -15,7 +16,10 @@ class UserController extends Controller
1516
*/
1617
public function index()
1718
{
18-
return UserResource::collection(User::paginate());
19+
if (Auth::user()->isAdmin()) {
20+
return UserResource::collection(User::paginate());
21+
}
22+
return response()->json(["message" => "Forbidden"], 403);
1923
}
2024

2125
/**
@@ -37,7 +41,10 @@ public function store(Request $request)
3741
*/
3842
public function show(User $user)
3943
{
40-
return new UserResource($user);
44+
if (Auth::user()->isAdmin()) {
45+
return new UserResource($user);
46+
}
47+
return response()->json(["message" => "Forbidden"], 403);
4148
}
4249

4350
/**

app/Models/User.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ class User extends Authenticatable implements MustVerifyEmail
4040
* @var array
4141
*/
4242
protected $casts = [
43+
'is_admin' => 'boolean',
4344
'email_verified_at' => 'datetime',
4445
];
46+
47+
public function isAdmin(): bool
48+
{
49+
return $this->is_admin;
50+
}
4551
}

0 commit comments

Comments
 (0)