Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spatie/laravel-permission
Associate users with roles and permissions
https://github.com/spatie/laravel-permission
laravel permission php secure
Last synced: 3 days ago
JSON representation
Associate users with roles and permissions
- Host: GitHub
- URL: https://github.com/spatie/laravel-permission
- Owner: spatie
- License: mit
- Created: 2015-09-14T22:19:38.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-27T21:25:28.000Z (14 days ago)
- Last Synced: 2024-12-02T08:09:52.212Z (10 days ago)
- Topics: laravel, permission, php, secure
- Language: PHP
- Homepage: https://spatie.be/docs/laravel-permission
- Size: 2.73 MB
- Stars: 12,211
- Watchers: 191
- Forks: 1,781
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Support: docs/support-us.md
Awesome Lists containing this project
- awesome-laravel-framework - Laravel Permission - Associate users with roles and permissions (Popular Packages)
- awesome-laravel - Laravel Permission - Permite administrar los permisos y roles de los usuarios. (Paquetes utiles)
- awesome-auth - laravel-permission - Allows you to manage user permissions and roles in a database. (Authorization / <a name="authZ-php"></a>PHP)
- laravel-awesome - Laravel Permission - Associate users with roles and permissions (Popular Packages)
- awesome-laravel - Laravel Permission - Associate users with roles and permissions (Popular Packages)
- StarryDivineSky - spatie/laravel-permission
README
# Associate users with permissions and roles
[![Latest Version on Packagist](https://img.shields.io/packagist/v/spatie/laravel-permission.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-permission)
[![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/spatie/laravel-permission/run-tests-L8.yml?branch=main&label=Tests)](https://github.com/spatie/laravel-permission/actions?query=workflow%3ATests+branch%3Amain)
[![Total Downloads](https://img.shields.io/packagist/dt/spatie/laravel-permission.svg?style=flat-square)](https://packagist.org/packages/spatie/laravel-permission)## Documentation, Installation, and Usage Instructions
See the [documentation](https://spatie.be/docs/laravel-permission/) for detailed installation and usage instructions.
## What It Does
This package allows you to manage user permissions and roles in a database.Once installed you can do stuff like this:
```php
// Adding permissions to a user
$user->givePermissionTo('edit articles');// Adding permissions via a role
$user->assignRole('writer');$role->givePermissionTo('edit articles');
```Because all permissions will be registered on [Laravel's gate](https://laravel.com/docs/authorization), you can check if a user has a permission with Laravel's default `can` function:
```php
$user->can('edit articles');
```## Support us
[](https://spatie.be/github-ad-click/laravel-permission)
We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us).
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards).
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Contributing
Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details.
### Testing
``` bash
composer test
```### Security
If you discover any security-related issues, please email [[email protected]](mailto:[email protected]) instead of using the issue tracker.
## Postcardware
You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.
Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium.
We publish all received postcards [on our company website](https://spatie.be/en/opensource/postcards).
## Credits
- [Chris Brown](https://github.com/drbyte)
- [Freek Van der Herten](https://github.com/freekmurze)
- [All Contributors](../../contributors)This package is heavily based on [Jeffrey Way](https://twitter.com/jeffrey_way)'s awesome [Laracasts](https://laracasts.com) lessons
on [permissions and roles](https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/16). His original code
can be found [in this repo on GitHub](https://github.com/laracasts/laravel-5-roles-and-permissions-demo).Special thanks to [Alex Vanderbist](https://github.com/AlexVanderbist) who greatly helped with `v2`, and to [Chris Brown](https://github.com/drbyte) for his longtime support helping us maintain the package.
And a special thanks to [Caneco](https://twitter.com/caneco) for the logo ✨
## Alternatives
- [Povilas Korop](https://twitter.com/@povilaskorop) did an excellent job listing the alternatives [in an article on Laravel News](https://laravel-news.com/two-best-roles-permissions-packages). In that same article, he compares laravel-permission to [Joseph Silber](https://github.com/JosephSilber)'s [Bouncer]((https://github.com/JosephSilber/bouncer)), which in our book is also an excellent package.
- [santigarcor/laratrust](https://github.com/santigarcor/laratrust) implements team support
- [ultraware/roles](https://github.com/ultraware/roles) (archived) takes a slightly different approach to its features.
- [zizaco/entrust](https://github.com/zizaco/entrust) offers some wildcard pattern matching## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.