https://spatie.be/docs/laravel-permission/v5/basic-usage/super-admin
We strongly recommend that a Super-Admin be handled by setting a global Gate::before or Gate::after rule which checks for the desired role.
"strongly recommend" İifadesi yüzünden anlamak istiyorum.
Uygulamam
Role::create(['name' => 'writer']);
Role::create(['name' => 'admin']);
Role::create(['name' => 'user']);
rollerine sahip ve bir adet admin var 2.bir admin yok neden bir Süper Admin tanımlamaya ihtiyac duayayım ?
Aslında ismi admin olmuş süper admin olmuş farketmez anlamaya çalıştığım
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
public function boot()
{
$this->registerPolicies();
// Implicitly grant "Super Admin" role all permissions
// This works in the app by using gate-related functions like auth()->user->can() and @can()
Gate::before(function ($user, $ability) {
return $user->hasRole('Super Admin') ? true : null;
});
}
}
bu bana ne sağlar ? Bu arada hemen belirteyim Vue+Inertia kullanıyorum spatie nin blade direktiflerini ön yüzde kullanamıyorum .
Aslında sorum yukardaki kadardı ancak şöyle bişe bulunca eklemek istedim
https://laravel.com/docs/9.x/authorization#intercepting-gate-checks
use Illuminate\Support\Facades\Gate;
Gate::before(function ($user, $ability) {
if ($user->isAdministrator()) {
return true;
}
});
buna göre aslında spatie özel bir durum yok spatie kullanmıyor olsaydımda basitce kullanıcı tablosunda bir isAdministrator() alanı olmuş olsaydı yine yukardaki kod ile bir Süper admin alanı eklemek şiddetle önerilebilirdi tüm bunlara göre geldiğim son noktada kararsızım
Defining a Super-Admin nedir ne iş yapar neden şiddetle önerilir diyemi sormalıyım ? yoksa
Gate :: before nedir ne iş yaparımı sormalıyım kararsız kaldım