Drabina to pakiet Enei Dhiamandiego, który zapewnia lekkie pozwolenia dla Laravel. Upraszcza zarządzanie rolami i uprawnieniami, unikając przechowywania wszystkiego w bazie danych. Zainspirowany Jestream, oferuje statyczne podejście, które redukuje zapytania i zapewnia niezmienność dla łatwych modyfikacji.
Korzystając z dostarczonej HasRoles
cechy, można uzyskać dostęp do metod zarządzania rolami i uprawnieniami użytkowników:
use Ladder\HasRoles;
class User extends Authenticatable
{
use HasRoles;
}
// Determine if the user has a role
$user->hasRole(string $role): bool
// Permissions for a given role
$user->rolePermissions(string $role): ?array
// Determine if the user role has a given permission...
$user->hasRolePermission(string $role, string $permission) : bool
// Determine if the user has given permission...
$user->hasPermission(string $permission) : bool
Aby zarządzać rolami, można użyć skojarzenia modelu roles()
użytkownika w celu utworzenia roli dla użytkownika. Następnie możesz sprawdzić szczegółowe uprawnienia za pomocą metody:
$user->roles()->updateOrCreate(['role' => 'admin']);
$user->hasPermission('post:update');
Aby rozpocząć pracę z tym pakietem w projekcie Laravel, możesz zainstalować go za pomocą hasPermission()
kompozytora i rzemieślnika. Obejmuje migrację bazy danych dla ról, więc musisz również przeprowadzić migrację bazy danych:Możesz dowiedzieć się więcej o tym pakiecie, uzyskać pełne instrukcje instalacji i wyświetlić kod źródłowy w witrynie GitHub.It includes a database migration for roles, so you'll need to migrate the DB as well:
composer require eneadm/ladder
php artisan ladder:install
php artisan migrate
You can learn more about this package, get full installation instructions, and view the source code on GitHub.