• Czas czytania ~1 min
  • 22.08.2023

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.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297