PHPackages                             fishdaa/laravel-resource-permissions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. fishdaa/laravel-resource-permissions

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

fishdaa/laravel-resource-permissions
====================================

Extend Spatie Laravel Permission with resource-based permissions and roles

v0.4.1(4mo ago)08MITPHPPHP ^8.0CI passing

Since Nov 24Pushed 4mo agoCompare

[ Source](https://github.com/fishdaa/laravel-resource-permissions)[ Packagist](https://packagist.org/packages/fishdaa/laravel-resource-permissions)[ RSS](/packages/fishdaa-laravel-resource-permissions/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (5)Versions (7)Used By (0)

Laravel Resource Permissions
============================

[](#laravel-resource-permissions)

A Laravel package that extends [Spatie Laravel Permission](https://github.com/spatie/laravel-permission) with resource-based permissions and roles. This package allows you to assign permissions and roles to users for specific resources (polymorphic relationships), while maintaining full compatibility with Spatie's existing global permission system.

Features
--------

[](#features)

- Resource-based permissions: Assign permissions to users for specific resources (e.g., articles, projects, documents)
- Resource-based roles: Assign roles to users for specific resources
- Polymorphic relationships: Works with any Eloquent model as a resource
- Seamless integration: Works alongside Spatie's existing permission system
- Full Spatie compatibility: Uses Spatie's Permission and Role models directly

Installation
------------

[](#installation)

```
composer require fishdaa/laravel-resource-permissions
```

### Publish Migrations

[](#publish-migrations)

```
php artisan vendor:publish --tag=resource-permissions-migrations
```

### Run Migrations

[](#run-migrations)

```
php artisan migrate
```

### Publish Configuration (Optional)

[](#publish-configuration-optional)

```
php artisan vendor:publish --tag=resource-permissions-config
```

Quick Start
-----------

[](#quick-start)

### 1. Add Trait to User Model

[](#1-add-trait-to-user-model)

```
use Fishdaa\LaravelResourcePermissions\Traits\HasResourcePermissions;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles; // Spatie's trait
    use HasResourcePermissions; // Resource permissions trait
}
```

### 2. Use Resource Permissions

[](#2-use-resource-permissions)

```
$user = User::find(1);
$article = Article::find(1);

// Give permission for a specific resource
$user->givePermissionToResource('edit-article', $article);

// Check permission for a resource
if ($user->hasPermissionForResource('edit-article', $article)) {
    // User can edit this article
}

// Assign role for a resource
$user->assignRoleToResource('article-editor', $article);

// Get all permissions for a resource
$permissions = $user->getPermissionsForResource($article);
```

Documentation
-------------

[](#documentation)

For detailed documentation, please see the [docs folder](docs/README.md).

- [Installation Guide](docs/installation.md)
- [Configuration](docs/configuration.md)
- [UUID Setup](docs/uuid-setup.md) - Configure UUIDs instead of integer IDs
- [Usage &amp; API Reference](docs/usage.md)
- [Spatie Integration](docs/integration.md)
- [Examples](docs/examples.md)
- [Advanced Usage](docs/advanced.md)
- [Troubleshooting](docs/troubleshooting.md)

Requirements
------------

[](#requirements)

- PHP &gt;= 8.0
- Laravel &gt;= 8.0 (supports Laravel 8, 9, 10, 11, and 12)
- Spatie Laravel Permission &gt;= 6.0

Testing
-------

[](#testing)

Run the test suite using Composer:

```
composer test
```

Or run PHPUnit directly:

```
vendor/bin/phpunit
```

To run specific test suites:

```
# Run unit tests only
vendor/bin/phpunit tests/Unit

# Run feature tests only
vendor/bin/phpunit tests/Feature

# Run integration tests only
vendor/bin/phpunit tests/Integration
```

Contributing
------------

[](#contributing)

Contributions are welcome! Please feel free to submit a Pull Request. Please make sure your code follows the existing code style and includes tests for new features.

License
-------

[](#license)

The MIT License (MIT). Please see  for more information.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance77

Regular maintenance activity

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 97.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Total

6

Last Release

127d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d2b967e70e3c51509ed2472d343bf0d2616b8dd858298d5086ec009824f6655f?d=identicon)[fishda](/maintainers/fishda)

---

Top Contributors

[![fishdaa](https://avatars.githubusercontent.com/u/38401672?v=4)](https://github.com/fishdaa "fishdaa (34 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

spatielaravelrolespermissionsresource-permissionspolymorphic-permissions

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/fishdaa-laravel-resource-permissions/health.svg)

```
[![Health](https://phpackages.com/badges/fishdaa-laravel-resource-permissions/health.svg)](https://phpackages.com/packages/fishdaa-laravel-resource-permissions)
```

###  Alternatives

[spatie/laravel-permission

Permission handling for Laravel 12 and up

12.9k89.8M1.0k](/packages/spatie-laravel-permission)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[wijzijnweb/laravel-inertia-permissions

Easy to use package to implement Spatie's Permissions package into Inertia Laravel projects.

193.9k](/packages/wijzijnweb-laravel-inertia-permissions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
