uccellolabs/filament-tenancy

Easy way to manage tenancy with Filament.

dev-main 2022-12-21 19:46 UTC

This package is auto-updated.

Last update: 2024-11-22 00:07:23 UTC


README

Latest Version on Packagist Total Downloads

Filament Tenancy

Easy way to manage tenancy with filament.

Installation

You can install the package via composer:

composer require uccellolabs/filament-tenancy

Configuration

Edit app/Models/User.php and add the following code:

use Uccellolabs\FilamentTenancy\Support\Traits\UserBelongsToTenant;

class User extends Authenticatable
{
    use UserBelongsToTenant;

    protected $fillable = [
        // ...
        'current_tenant_id',
    ];
}

Edit app/Filament/Resources/UserResource/Pages/ListUsers.php and add the following code:

use Uccellolabs\FilamentTenancy\Support\Traits\CurrentTenant;

class ListUsers extends ListRecords
{
    use CurrentTenant;

    protected function getTableQuery(): Builder
    {
        $userIds = $this->getCurrentTenant()?->users()->pluck('users.id') ?? [];

        return User::whereIn('id', $userIds);
    }
}

Usage

use Uccellolabs\FilamentTenancy\Support\Traits\CurrentTenant;

Add a column named tenant_id in your table and add the following code in your Model:

use Uccellolabs\FilamentTenancy\Support\Traits\BelongsToTenant;

class YourModel extends Model
{
    use BelongsToTenant;
}

Credits

License

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