Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

composer.json

Open in GitHub
{
"require": {
"php": "^8.0",
//
"spatie/laravel-permission": "^4.2",
},
}

app/Models/User.php

Open in GitHub
use Spatie\Permission\Traits\HasRoles;
 
class User extends Authenticatable
{
use HasRoles;
}

app/Policies/UserPolicy.php

Open in GitHub
use App\Models\User;
 
class UserPolicy
{
use HandlesAuthorization;
 
public function view(User $authenticatedUser, User $user)
{
return Auth::user()->hasRole('admin') || $authenticatedUser->id === $user->id;
}
}

app/Http/Controllers/Dashboard/User/UserController.php

Open in GitHub
use App\Models\User;
use App\Services\UserService;
 
class UserController extends Controller
{
public function __construct(protected UserService $userSrvc)
{
$this->middleware('role:admin')->only('view');
}
 
public function edit(User $user)
{
$this->authorize('view', $user);
 
return view('backend.user.profile', compact('user'));
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.