Download the PHP package dibakar/laravel-ownership without Composer
On this page you can find all versions of the php package dibakar/laravel-ownership. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dibakar/laravel-ownership
More information about dibakar/laravel-ownership
Files in dibakar/laravel-ownership
Package laravel-ownership
Short Description Flexible ownership management package for Laravel with single & multiple ownership support. with traits, scopes, and policies.
License MIT
Informations about the package laravel-ownership
Laravel Ownership
A comprehensive ownership management system for Laravel applications. This package provides an elegant way to handle both single and multiple ownership scenarios with role-based permissions, events, and query scopes.
Features
- Dual Ownership Modes: Support for both single and multiple ownership models
- Role-based Access Control: Define custom roles with specific permissions
- Flexible Configuration: Highly customizable to fit any application needs
- Event-driven Architecture: Built-in events for all ownership changes
- Powerful Query Scopes: Filter models by ownership with ease
- Performance Optimized: Built-in caching for ownership checks
- Type Safety: Strict type declarations and modern PHP features
- Laravel Integration: Seamless integration with Laravel's authentication system
- Morphable Owners: Support for any authenticatable model as an owner
- Bulk Operations: Manage multiple owners at once with sync methods
Installation
-
Install the package via Composer:
-
Publish the configuration file:
- Publish and run the migrations:
Configuration
The configuration file (config/ownership.php
) allows you to customize various aspects of the package. Here are the main configuration options:
Usage
Single Ownership Mode
Add the HasOwnership
trait to your model for single ownership:
Basic Operations
Multiple Ownership Mode
First, update your config to use multiple ownership mode:
Then add the HasOwnership
trait to your model:
Managing Multiple Owners
php // Get all posts owned by the current user $posts = Post::ownedByCurrent()->get();
// Get all posts owned by a specific user $userPosts = Post::ownedBy($user)->get();
// In multiple ownership mode, get projects where user has a specific role $projects = Project::whereHasOwnerWithRole($user, 'editor')->get();
// Get models where user has specific permission $editablePosts = Post::whereUserHasPermission($user, 'edit')->get(); blade {{-- Check if current user owns the model --}} @owned($post) Edit @endowned
{{-- Check specific user ownership --}} @owned($post, $specificUser) Owned by {{ $specificUser->name }} @endowned
{{-- Check if user has specific permission --}} @can('edit', $post) Edit @endcan
@owned($model, $user = null) This content is only visible to the owner @endowned
@canOwn($model, 'edit', $user = null) This content is only visible to users with edit permission @endCanOwn
@isOwner($model, $user = null) This content is only visible to an owner @endIsOwner bash composer test
## Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## License
The MIT License (MIT). Please see [License File](LICENSE) for more information.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Credits
- [Dibakar Mitra](https://github.com/dibakarmitra)
- [All Contributors](../../contributors)
All versions of laravel-ownership with dependencies
illuminate/contracts Version ^9.0|^10.0|^11.0|^12.0
illuminate/database Version ^9.0|^10.0|^11.0|^12.0
illuminate/support Version ^9.0|^10.0|^11.0|^12.0