Почему getAllPermissions() возвращает только одно разрешение?
Использование Laravel с Auth
и https://github.com/spatie/laravel-permission. У меня есть пользователь с ролью администратора. К этой роли также прикреплены несколько других разрешений.
я отметил 'can:permission_name'
а также 'permission:permission_name'
промежуточное ПО не работало должным образом, поэтому я начал отладку. Я понял, что$user->getAllPermissions()
возвращает только разрешение с наивысшим id
. Кроме того, при запуске$user->hasPermissionTo()
при других разрешениях, кроме упомянутого ранее, возвращается false.
Я был бы очень признателен за помощь. Кроме того, я попытался очистить кеш.
Функция сеялки:
public function run() {
$permissions[0] = Permission::create(['guard_name' => 'web', 'name' => 'Access Admin Panel']);
$permissions[1] = Permission::create(['guard_name' => 'web', 'name' => 'Access Music']);
$permissions[2] = Permission::create(['guard_name' => 'web', 'name' => 'Edit Database']);
$permissions[3] = Permission::create(['guard_name' => 'web', 'name' => 'Login']);
$role[0] = Role::create(['guard_name' => 'web', 'name' => 'Administrator']);
$role[0]->permissions()->attach($permissions[0]);
$role[0]->permissions()->attach($permissions[1]);
$role[0]->permissions()->attach($permissions[2]);
$role[0]->permissions()->attach($permissions[3]);
$role[1] = Role::create(['guard_name' => 'web', 'name' => 'VIP']);
$role[1]->permissions()->attach($permissions[1]);
$role[1]->permissions()->attach($permissions[2]);
$role[1]->permissions()->attach($permissions[3]);
$role[2] = Role::create(['guard_name' => 'web', 'name' => 'Trusted']);
$role[2]->permissions()->attach($permissions[2]);
$role[2]->permissions()->attach($permissions[3]);
$role[3] = Role::create(['guard_name' => 'web', 'name' => 'User']);
$role[3]->permissions()->attach($permissions[3]);
$role[4] = Role::create(['guard_name' => 'web', 'name' => 'Disabled']);
$admin = User::create(['name' => 'Gandalfsdottir', 'email' => 'my@email.com', 'password' => Hash::make('demo')]);
$admin->markEmailAsVerified();
$admin->assignRole('Administrator');
$demo = User::create(['name' => 'Demo', 'email' => 'my@secondemail.fr', 'password' => Hash::make('demo')]);
$demo->markEmailAsVerified();
$demo->assignRole('User');
}