Introduction

Offers a small ACLopen in new window implementation for Laravel, with roles and permissions (grouped) that are stored in a database.

Database tables

The following diagram illustrates the database tables (pivot tables not shown).

┌───────┐
│ users │
└───┬───┘
    │
    │  Each user can be assigned none or many roles
    │
┌───▼───┐
│ roles │
└───┬───┘
    │
    │  Each role is granted none or many permissions
    │
┌───▼─────────┐
│ permissions │
└───┬─────────┘
    │
    │  Each permission belongs to a group of permissions
    │
┌───▼────┐
│ groups │
└────────┘

Alternatives

There are many ACL alternatives available, for Laravel. Amongst them is the Spatie Laravel Permissionopen in new window package, which has been a great source of inspiration for this package.

Please know that this package's implementation and core concept differs from that of Spatie. The "Laravel Permission" permission package allows you to grant permissions directly to user model, if you wish. This package does not allow such - permissions can only be granted to roles. Nevertheless, Spatieopen in new window offers support for multiple Guardsopen in new window and tons of other nice features. You are encouraged to review their documentationopen in new window, before proceeding here.