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(5mo ago)08MITPHPPHP ^8.0CI passing

Since Nov 24Pushed 5mo 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 today

READMEChangelog (6)Dependencies (5)Versions (8)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

30

—

LowBetter than 62% of packages

Maintenance69

Regular maintenance activity

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity35

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

179d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/17269011?v=4)[Fish\_D](/maintainers/fishda)[@fishda](https://github.com/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.9k102.4M1.4k](/packages/spatie-laravel-permission)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k3.9M129](/packages/bezhansalleh-filament-shield)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M345](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M194](/packages/laravel-ai)[moonshine/moonshine

Laravel administration panel

1.3k253.1k81](/packages/moonshine-moonshine)[api-platform/laravel

API Platform support for Laravel

58171.5k14](/packages/api-platform-laravel)

PHPackages © 2026

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