У меня проблема с spatie/laravel-permissions
...
Я использую Gate
в AuthServiceProvider.php
для определения Superadmin
(могу обойти все разрешения без регистрации в роли) ...
Отлично работает с can('the-permission')
помощником.
Но не работает с Auth::user()->hasPermissionTo('the-permission')
...
.
.
Ниже мой код:
.
In AuthServiceProvider.php
:
public function boot()
{
$this->registerPolicies();
Gate::before(function ($user, $ability) {
$superadmin_rolename = 'Superadmin';
$guard_name = 'web-admin';
return $user->hasRole($superadmin_rolename , $guard_name ) ? true : null;
});
}
.
.
InКлинок:
@can('add products')
<button type="submit">Add Product</button>
@endcan
// this will work perfectly, the button will be shown
.
.
В контроллере:
public function addProduct()
{
$admin = Auth::guard('web-admin')->user();
if($admin->hasPermissionTo('add products')) return true;
return false;
}
// this is not working (it return false)... i dont know why.... it should return true....
так, как я вам покажу выше:
- Я использую
Gate
для определения superadmin - superadmin должен предоставить полный доступ
- он отлично работает с
can()
и $user->can()
- но он не работает с
$user->hasPermissionTo()
<--------- это то, что я хочу знать </li>
Спасибо