PHPackages                             patrickcurl/filament-auth - 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. [CLI &amp; Console](/categories/cli)
4. /
5. patrickcurl/filament-auth

ActiveLibrary[CLI &amp; Console](/categories/cli)

patrickcurl/filament-auth
=========================

User &amp; Role (via Spatie Roles/Permissions) Manager Resource For Filament Admin, forked from forked from phpsa/filament-authentication - added Bouncer as an option for permissions as well.

v3.0.1(3y ago)05MITPHPPHP ^8.0

Since Apr 22Pushed 3y ago1 watchersCompare

[ Source](https://github.com/patrickcurl/filament-auth)[ Packagist](https://packagist.org/packages/patrickcurl/filament-auth)[ Docs](https://zvive.com)[ GitHub Sponsors](https://github.com/patrickcurl)[ RSS](/packages/patrickcurl-filament-auth/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (5)Versions (19)Used By (0)

[![Latest Version on Packagist](https://camo.githubusercontent.com/eb899181c31886a54426bd6faab614cac6321dd66009086070bcff6f7b226f2b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7061747269636b6375726c2f66696c616d656e742d617574682e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/patrickcurl/filament-auth)[![Semantic Release](https://github.com/patrickcurl/filament-auth/actions/workflows/release.yml/badge.svg)](https://github.com/patrickcurl/filament-auth/actions/workflows/release.yml)[![Total Downloads](https://camo.githubusercontent.com/760bf6ae9e38795c585973b2a3e591d86d0c7e68afd5dce7c3bd0f0492331e85/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7061747269636b6375726c2f66696c616d656e742d617574682e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/patrickcurl/filament-auth)

Filament User Authentication
============================

[](#filament-user-authentication)

User Resource For Filament Admin along with Roles &amp; Permissions using Spatie

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

[](#installation)

You can install the package via composer:

```
composer require patrickcurl/filament-auth
```

and now clear cache

```
php artisan optimize:clear
```

and publish config

```
php artisan vendor:publish --tag=filament-auth-config
```

and optionally views / translations

```
artisan vendor:publish --tag=filament-auth-views
artisan vendor:publish --tag=filament-auth-translations
```

Additional Resources
--------------------

[](#additional-resources)

### Spatie Roles &amp; Permissions

[](#spatie-roles--permissions)

If you have not yet installed this package it run the following steps:

```
    composer require spatie/laravel-permission
```

1. You should publish the migration and the config/permission.php config file with:

```
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate
```

2. Add the `Spatie\Permission\Traits\HasRoles` trait to your Users model Also add the following method to your User Model:

```
    public function canAccessFilament() : bool
    {
        // Change this per your requirements.
        return $this->hasRole('superadmin');
    }
```

3. Add Roles &amp; Permissions as required

For more see:

### Bouncer Roles / Permissions

[](#bouncer-roles--permissions)

If you have not yet installed this package it run the following steps:

1. You should publish the migration and the config/permission.php config file with:

```
php artisan vendor:publish --provider="Silber\Bouncer\BouncerServiceProvider"
php artisan migrate
```

Add the following method to your User model :

```
    public function canAccessFilament() : bool
    {
        // Change this per your requirements.
        return Bouncer::is($this)->a('superadmin');
    }
```

Implemented, but docs coming soon.

### Laravel Impersonate

[](#laravel-impersonate)

If you have not configured this package it is automatically added by this install, run the following steps:

1. Add the trait `Lab404\Impersonate\Models\Impersonate` to your User model.
2. Setup your permissions:

Security
--------

[](#security)

Roles &amp; Permissions can be secured using Laravel Policies, create your policies and register then in the AuthServiceProvider

```
 protected $policies = [
        Role::class       => RolePolicy::class,
        Permission::class => PermissionPolicy::class,
        CustomPage::class => CustomPagePolicy::class,
        SettingsPage::class => SettingsPagePolicy::class
        // 'App\Models\Model' => 'App\Policies\ModelPolicy',
    ];
```

We have a Custom Page Trait: `FilamentAuth\Traits\PagePolicyTrait` and a Spatie Settings Page Trait `FilamentAuth\Traits\SettingsPage\PolicyTrait` that you can add to your pages / settings pages. By defining a model and mapping it with a `viewAny($user)` method you can define per policies whether or not to show the page in navigation.

Widgets
-------

[](#widgets)

`LatestUsersWidget` is by default published to your dashboard, this can be configured / disabled by editing the config in the filament-auth config file:

```
 'Widgets' => [
      'LatesetUsers' => [
          'enabled' => true,
          'limit' => 5,
      ],
  ],
```

Note that it is also attached to the UserPolicy::viewAny policy value if the policy exists

\--It is planned to update the enabled to accept a callback function to allow for roles etc in the next version--

Profile
-------

[](#profile)

Profile view for currently authed user

Extending
---------

[](#extending)

Extend Profile:

```
