Admin user, role and permission management for Laravel Filament

Overview

filament-access-control

Filament Access Control

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

Opinionated setup for managing admin users, roles and permissions within Laravel Filament

Features

  • Separate database table for filament admin users (separate model, separate guard, separate password broker)
  • Uses spatie/laravel-permission for roles and permissions
  • Adds the missing password reset flow to Filament
  • Fully localized
  • CRUD resources for admin users, roles and permissions
  • Admin users may belong to one role
  • Admin users can have direct permissions or indirect permissions through their role
  • When creating admin users through the admin interface, no password is specified. Instead, the user receives an email prompting them to set their password
  • Optional account expiry for admin users. Expired accounts are no longer able to log in
  • Optional email based two-factor authentication.

Installation

  1. Install the package via composer:
composer require chiiya/filament-access-control
  1. Update your config/filament.php file to use the package's guard and Login page:
'auth' => [
    'guard' => env('FILAMENT_AUTH_GUARD', 'filament'),
    'pages' => [
        'login' => \Chiiya\FilamentAccessControl\Http\Livewire\Login::class,
    ],
],
  1. Publish the migrations and config, then run the migrations. Make sure you also publish and run the spatie/laravel-permission migrations if you haven't done so yet.
php artisan vendor:publish --tag="filament-access-control-migrations"
php artisan vendor:publish --tag="filament-access-control-config"
php artisan migrate
  1. To seed the necessary base data (role & permissions), run php artisan filament-access-control:install or call the Chiiya\FilamentAccessControl\Database\Seeders\FilamentAccessControlSeeder seeder in your database seeder.

  2. Create an admin user using php artisan filament-access-control:user. If you create users programmatically (e.g. in your database seeder), make sure to assign them the super-admin role if you want them to be able to access the role and user management.

Optionally, you can publish the translations with:

php artisan vendor:publish --tag="filament-access-control-translations"

Optionally, you can publish the views with:

php artisan vendor:publish --tag="filament-access-control-views"

Usage

Authorizing Resources, Pages & Actions

Authorizing Resources

To authorize access to resources, use policies as described in the Filament documentation.

class ProductPolicy
{
    public function viewAny(FilamentUser $user): bool
    {
        return $user->can('products.view');
    }
    
    // ...
}

Authorizing Pages

This package comes with a simple trait that you can use to authorize access to custom pages based on a permission.

use Chiiya\FilamentAccessControl\Traits\AuthorizesPageAccess;

class MyPage extends Page
{
    use AuthorizesPageAccess;
    
    public static string $permission = 'my-page.view';
    
    public function mount(): void
    {
        static::authorizePageAccess();
    }
}

Authorizing Actions

One way to authorize actions is to use the visible() method:

ButtonAction::make('exports')
    ->visible(fn () => Filament::auth()->user()->can('exports.view'))

Localizing Role & Permission Names

Roles and permissions should have names that make them easy to use in code (e.g. admin-users.update). For the admin you may however wish to localize them or make them more readable. You can do so by simply adding a JSON translation entry for the given role or permission name (e.g. lang/en.json):

{
    "admin-users.update": "Admin Users → Edit"
}

Feature: Account Expiry

With the optional account expiry feature, all accounts require an expiration date. When accounts are expired, they can no longer log in. To enable the account expiry feature, enable the feature flag in the config file:

'features' => [
    \Chiiya\FilamentAccessControl\Enumerators\Feature::ACCOUNT_EXPIRY,
],

You will also need to add the EnsureAccountIsNotExpired middleware to your filament auth middleware config:

use Chiiya\FilamentAccessControl\Http\Middleware\EnsureAccountIsNotExpired;

'middleware' => [
    'auth' => [
        Authenticate::class,
        EnsureAccountIsNotExpired::class,
    ],
]

Feature: Two-Factor Authentication

With the optional two-factor authentication feature, users must enter a verification code sent via email upon login. To enable the two-factor authentication feature, enable the feature flag in the config file:

'features' => [
    \Chiiya\FilamentAccessControl\Enumerators\Feature::TWO_FACTOR,
],

Screenshots

Screenshot of Admin Users - View Screenshot of Roles - Edit Screenshot of Reset Password Screenshot of Account Expired Screenshot of Two-Factor Authentication

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

License

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

Comments
  • Missing notification on forgotten password screen

    Missing notification on forgotten password screen

    Hi,

    on route /admin/password/request after you submit your email, there is no notification that the email was sent and also the email stays in the form - probably should be cleared.

    Thanks for a nice package.

    opened by aureliusm 4
  • Argument #1 ($user) must be of type FilamentUser

    Argument #1 ($user) must be of type FilamentUser

    Chiiya\FilamentAccessControl\Policies\FilamentUserPolicy::viewAny(): Argument #1 ($user) must be of type Chiiya\FilamentAccessControl\Models\FilamentUser, App\Models\User given, called in

    i have already updated filament config file auth.pages.login value with \Chiiya\FilamentAccessControl\Http\Livewire\Login::class

    question 
    opened by imrancoder 4
  • [ISSUE] Spatie\Permission\Exceptions\GuardDoesNotMatch with message 'The given role or permission should use guard `web` instead of `filament`.'

    [ISSUE] Spatie\Permission\Exceptions\GuardDoesNotMatch with message 'The given role or permission should use guard `web` instead of `filament`.'

    >>> $user = User::find(11);
    => App\Models\User {#5313
         id: 11,
         email: "[email protected]",
         #password: "$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi",
         first_name: "مستخدم",
         last_name: "للإختبار",
         expires_at: null,
         two_factor_expires_at: null,
         two_factor_code: null,
         #remember_token: "NkUmKbJWD0j827WHpgFPBc5DkFCgdvNIh07mbxTaBlP9SB8pEYyzXrtAKPYL",
         created_at: "2022-10-04 02:15:20",
         updated_at: "2022-10-04 02:15:20",
       }
    
    >>> $role = Spatie\Permission\Models\Role::first()
    => Spatie\Permission\Models\Role {#5300
         id: 1,
         name: "super-admin",
         guard_name: "filament",
         created_at: "2022-10-04 03:41:23",
         updated_at: "2022-10-04 03:41:23",
       }
    
    >>> $user->assignRole($role);
    Spatie\Permission\Exceptions\GuardDoesNotMatch with message 'The given role or permission should use guard `web` instead of `filament`.'
    >>> 
    

    How this can be resolved?

    opened by vzool 3
  • Compatibility with filament-logger

    Compatibility with filament-logger

    In order for the activity log exposed by filament-logger to show users managed by this package, the FilamentUser model needs a method like so:

        /**
         * Return a name.
         *
         * Needed for compatibility with filament-logger.
         */
        public function getNameAttribute(): string
        {
            return $this->getFilamentName();
        }
    

    It's a really minor thing, but it ensures that the user who caused an event is clearly visible.

    opened by cweagans 2
  • php artisan optimize command fails

    php artisan optimize command fails

    I ran

    php artisan optimize which is also run php artisan config:cache as part of it's commands.

    on my terminal and i got a LogicException:

    `LogicException : Your configuration files are not serializable.

    at C:\xampp\htdocs{PROJECT}\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:68

    64| require $configPath; 65| } catch (Throwable $e) { 66| $this->files->delete($configPath); 67| 68| throw new LogicException('Your configuration files are not serializable.', 0, $e); 69| } 70| 71| $this->info('Configuration cached successfully!'); 72| }

    Exception trace:

    1 Error::("Call to undefined method Closure::__set_state()") C:\xampp\htdocs{PROJECT}\bootstrap\cache\config.php:241

    2 require() C:\xampp\htdocs{PROJECT}\vendor\laravel\framework\src\Illuminate\Foundation\Console\ConfigCacheCommand.php:64

    Please use the argument -v to see more details.`

    after doing some debugging and search on what the error was i came across this post on stackoverflow that explains what might be causing this error.

    and after searching i found what I feel is the cause: /* |-------------------------------------------------------------------------- | Password Rules |-------------------------------------------------------------------------- | Rules for the password set during the passwort reset flow. */ 25| 'password_rules' => [Password::min(8)],

    in the config file of the package at vendor\chiiya\filament-access-control\config\filament-access-control.php

    reason for error:

    Closure serialization is not allowed in Laravel and PHP at large. Look through your configuration files for any file where you used Closures and rewrite that piece of code using traditional functions.

    opened by jojostx 2
  • Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5

    Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5

    Bumps dependabot/fetch-metadata from 1.3.4 to 1.3.5.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.5

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1...v1.3.5

    Commits
    • 5ef0018 Merge pull request #282 from dependabot/v1.3.5-release-notes
    • a9380d2 v1.3.5
    • 404ba25 Merge pull request #280 from dependabot/drop-readme-from-bump-script
    • f40d4c7 Don't bump pin versions in README.md
    • 7db64c3 Merge pull request #252 from dependabot/document-release-steps
    • daa85e7 Add mention of npm run build if dev deps need updating.
    • b768c40 Document steps for cutting a new release
    • 9833f74 Merge pull request #273 from dependabot/dependabot/npm_and_yarn/yargs-and-typ...
    • 32b7ed3 Bump yargs and @​types/yargs
    • 7942397 Merge pull request #271 from dependabot/dependabot/npm_and_yarn/actions/githu...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4

    Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4

    Bumps dependabot/fetch-metadata from 1.3.3 to 1.3.4.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.4

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1.3.3...v1.3.4

    Commits
    • bfc19f4 v1.3.4
    • 4367f58 Merge pull request #258 from dependabot/dependabot/npm_and_yarn/yaml-2.1.1
    • 00ab600 Manually bump dist/
    • bdbe81d Bump yaml from 2.0.1 to 2.1.1
    • 5fc325a Merge pull request #257 from dependabot/dependabot/npm_and_yarn/typescript-4.8.3
    • c91309c Bump typescript from 4.6.3 to 4.8.3
    • 264d039 Merge pull request #266 from dependabot/dependabot/npm_and_yarn/ts-node-10.9.1
    • d1cd6ed Bump ts-node from 10.7.0 to 10.9.1
    • e3cb77e Merge pull request #265 from dependabot/dependabot/npm_and_yarn/actions/githu...
    • e462341 [dependabot skip] Update dist/ with build changes
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump dependabot/fetch-metadata from 1.3.1 to 1.3.3

    Bump dependabot/fetch-metadata from 1.3.1 to 1.3.3

    Bumps dependabot/fetch-metadata from 1.3.1 to 1.3.3.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.3

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1.3.2...v1.3.3

    v1.3.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1.3.1...v1.3.2

    Commits
    • 605e039 Merge pull request #233 from dependabot/v1.3.3-release-notes
    • e0f3842 v1.3.3
    • ac6adf8 Merge pull request #232 from jsok/patch-1
    • 15259f7 action.yaml: fix skip-commit-verification quoting
    • 90ed90d Merge pull request #226 from dependabot/v1.3.2-release-notes
    • 28b141f v1.3.2
    • cfb7274 Merge pull request #225 from dependabot/brrygrdn/skip-commit-verification
    • 6c87543 Bump dist/
    • d882a80 Update documentation
    • b1673a7 Add skip-commit-verification input
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Bump dependabot/fetch-metadata from 1.3.0 to 1.3.1

    Bump dependabot/fetch-metadata from 1.3.0 to 1.3.1

    Bumps dependabot/fetch-metadata from 1.3.0 to 1.3.1.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.1

    Highlights

    This release is primarily catching up on our dependencies, but it also includes a few bug fixes:

    What's Changed

    New Contributors

    Full Changelog: https://github.com/dependabot/fetch-metadata/compare/v1.3.0...v1.3.1

    Commits
    • bfac3fa Merge pull request #210 from dependabot/v1.3.1-release-notes
    • 80173ff Small correction to bump-version script
    • 525fbe9 v1.3.1
    • 58f09fc Merge pull request #206 from dependabot/dependabot/npm_and_yarn/yaml-2.0.1
    • b1d2cf8 Bump dist/
    • 70c6c9e Bump yaml from 1.10.2 to 2.0.1
    • 7b49493 Merge pull request #209 from dependabot/dependabot/npm_and_yarn/vercel/ncc-0....
    • 13f5830 Bump @​vercel/ncc from 0.33.3 to 0.33.4
    • 59ab888 Merge pull request #208 from dependabot/dependabot/npm_and_yarn/types/node-17...
    • aad4446 Bump @​types/node from 17.0.23 to 17.0.25
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Adding this plugin to filamentphp.com

    Adding this plugin to filamentphp.com

    Hey! Hope you don't mind me opening an issue about this. I'm one of the maintainers of Filament.

    Today, we're launching a new Plugins list on filamentphp.com, and I'd love to see this plugin alongside our others. Hopefully it will serve as great advertising for your work, to our community.

    If you'd like to submit your plugin, create an account here. If you're not interested, feel free to close this issue, no hard feelings :)

    Dan

    opened by danharrin 1
  • Bump dependabot/fetch-metadata from 1.2.1 to 1.3.0

    Bump dependabot/fetch-metadata from 1.2.1 to 1.3.0

    Bumps dependabot/fetch-metadata from 1.2.1 to 1.3.0.

    Release notes

    Sourced from dependabot/fetch-metadata's releases.

    v1.3.0 - Fetch additional metadata via the GitHub API

    Highlights

    🆕 Fetch additional metadata about Dependabot commits

    You can now optionally enable API lookups within the Action to retrieve extra information about Dependabot PRs.

    Example:

    -- .github/workflows/dependabot-prs.yml
    name: Dependabot Pull Request
    on: pull_request_target
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: Fetch Dependabot metadata
          id: dependabot-metadata
          uses: dependabot/[email protected]
          with:
            alert-lookup: true
            compat-lookup: true
    

    The flags enable the following new outputs:

    • steps.dependabot-metadata.outputs.alert-state
      • If this PR is associated with a security alert and alert-lookup is true, this contains the current state of that alert (OPEN, FIXED or DISMISSED).
    • steps.dependabot-metadata.outputs.ghsa-id
      • If this PR is associated with a security alert and alert-lookup is true, this contains the GHSA-ID of that alert.
    • steps.dependabot-metadata.outputs.cvss
      • If this PR is associated with a security alert and alert-lookup is true, this contains the CVSS value of that alert (otherwise it contains 0).
    • steps.dependabot-metadata.outputs.compatibility-score
      • If this PR has a known compatibility score and compat-lookup is true, this contains the compatibility score (otherwise it contains 0).

    Many thanks to @​mwaddell for contributing these additional flags 🥇

    The Action no longer fails if other commits are present

    We received feedback at this change was highly obtrusive and blocking common workflows that merging in the target branch. Following on from changes in 1.2.1 to make it easier for a user to re-run failed workflows this friction was much more obvious.

    Thanks for the feedback, and thanks @​mwaddell for contributing the change.

    The Action defaults to using the GITHUB_TOKEN

    This makes us consistent with other GitHub Actions such as actions/checkout in using the baseline token provided to the workflow. Since the Action doesn't have any features which require write scopes this defaulting is adequate for all use cases.

    Thanks @​jablko for contributing this change 🏆

    What's Changed

    ... (truncated)

    Commits
    • a96c30f Merge pull request #170 from dependabot/v1.3.0-release-notes
    • 11d3bb7 v1.3.0
    • 0ca01a5 Merge pull request #146 from pangaeatech/get_compat_score
    • f4b2d0d Merge pull request #83 from jablko/patch-1
    • 26e18ca Merge branch 'main' into patch-1
    • a30bbbb Merge pull request #166 from pangaeatech/allow-other-commits
    • 9a3daaf linting
    • 4a87565 Allow fetch-metadata to run on a PR even if it has additional commits, as lon...
    • 749688a Merge pull request #165 from pangaeatech/update_readme
    • 592101e Updated README to reference correct version
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Sanctum FilamentUser Error

    Sanctum FilamentUser Error

    Good afternoon everyone; The system presents an error when api sanctum token is requested for administrative users, as shown in the image below:

    image

    The resolution is to add the HasApiToken in the Model FilamentUser. As the default installation of Laravel 9x Sanctum is installed I will upload a PR correcting it and adding it to the Model.

    opened by vincenzotecnology 2
  • Bump ramsey/composer-install from 1 to 2

    Bump ramsey/composer-install from 1 to 2

    Bumps ramsey/composer-install from 1 to 2.

    Release notes

    Sourced from ramsey/composer-install's releases.

    2.0.0

    Added

    • Use --prefer-stable with lowest dependencies (#178)
    • Allow use of a custom cache key (#167)
    • Allow ability to ignore the cache

    Changed

    Fixed

    • Fix case where working-directory did not run composer install in the correct working directory (#187)
    • Fix problems with retrieving cache with parallel builds (#161, #152)
    • Fix problems restoring from cache on Windows (#79)

    1.3.0

    • Support passing --working-dir as part of composer-options

    1.2.0

    • Support Composer working-directory option for when composer.json is in a non-standard location.
    • Add operating system name to the cache key.

    1.1.0

    Display Composer output with ANSI colors.

    1.0.3

    Patch release for dependency updates.

    1.0.2

    • Use the GitHub cache action directly to avoid duplication of code/effort.
    • Turn on output of Composer command to provide feedback in the job log
    • Use Composer cache-dir instead of cache-files-dir

    1.0.1

    Rewrite and refactor as a JavaScript action.

    Commits
    • 83af392 :sparkles: Add new custom-cache-suffix option (#239)
    • 7f9021e Fix use of deprecated set-output command (#238)
    • 4617231 Tests: update the included composer.phar from v 2.2.2 to 2.2.18 (#237)
    • 72896eb Add dependabot configuration file (#227)
    • 69e970d GH Actions: version update for codecov action runner (#226)
    • e3612f6 GH Actions: version update for actions/cache (#224)
    • d515102 GH Actions: version update for various predefined actions (#222)
    • 6085843 GH Actions: re-work the integration tests (#221)
    • f680dac test: add PHP path back to command, as well as debug message
    • 3c51967 test: ensure we use the alternate composer location
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 1
  • Custom FilamentUser class

    Custom FilamentUser class

    This is really a requested feature, not a bug report (getting 404 when trying to create a request feature post). It would be great if the package user could specify what class to use in the config file so we could add our own traits (among other things) to it in order to extend the functionality.

    enhancement 
    opened by helgur 1
  • Optionally enabling 2FA per user

    Optionally enabling 2FA per user

    Would you consider adding an option for toggling 2FA on or off on a per-user-basis?

    So, "User A" might have 2FA enabled and will be prompted to confirm the code as how you've got it now. However, "User B" might have 2FA disabled and after logging in, will be logged straight in.

    I can create a PR if you're open to this feature request.

    enhancement 
    opened by realslimsutton 3
Releases(1.6.0)
  • 1.6.0(Dec 22, 2022)

    What's Changed

    What's Changed

    • Fix table 'roles' doesn't exist -> Add spatie-permission vendor:publish by @magarrent in https://github.com/chiiya/filament-access-control/pull/23
    • Add Arabic Translations by @vzool in https://github.com/chiiya/filament-access-control/pull/20
    • Upgraded auth views to resemble the new default Filament auth views
    • Fix roles and permissions not being restricted to filament guard
    • Add compatibility with filament-logger

    New Contributors

    • @magarrent made their first contribution in https://github.com/chiiya/filament-access-control/pull/23
    • @vzool made their first contribution in https://github.com/chiiya/filament-access-control/pull/20

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.5.0...1.6.0

    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(Aug 2, 2022)

  • 1.4.0(Jul 6, 2022)

    What's Changed

    • Bump dependabot/fetch-metadata from 1.3.1 to 1.3.3 by @dependabot in https://github.com/chiiya/filament-access-control/pull/9
    • Add support for Laravel 8 and PHP 8.0 by @stephenjude in https://github.com/chiiya/filament-access-control/pull/7
    • Fixed validation for role resource by @stephenjude in https://github.com/chiiya/filament-access-control/pull/7

    New Contributors

    • @stephenjude made their first contribution in https://github.com/chiiya/filament-access-control/pull/7

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.3.5...1.4.0

    Source code(tar.gz)
    Source code(zip)
  • 1.3.5(Jul 1, 2022)

    What's Changed

    • Fixed config serialization
    • Added config option password_hint for setting a helper text for the password field on the reset-password page

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.3.0...1.3.5

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Mar 7, 2022)

    What's Changed

    • Added trait for authorizing page access
    • Improved documentation

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.2.0...1.3.0

    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Feb 25, 2022)

    What's Changed

    • Added missing translations
    • Added new optional two-factor-authentication feature (see README on how to enable)
    • Updated and rename filament:create-user command to filament-access-control:user
    • Added filament-access-control:install command to create base role and permissions

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.1.0...1.2.0

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Feb 23, 2022)

    What's Changed

    • The account expiry date is now optional (only affects installations where the ACCOUNT_EXPIRY feature is enabled)

    Full Changelog: https://github.com/chiiya/filament-access-control/compare/1.0.1...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Feb 23, 2022)

Owner
Elisha Witte
Fullstack developer, Laravel & API enthusiast.
Elisha Witte
Filament-spatie-laravel-activitylog - View your activity logs inside of Filament. ⚡️

View your activity logs inside of Filament. This package provides a Filament resource that shows you all of the activity logs created using the spatie

Ryan Chandler 45 Dec 26, 2022
A convenient helper for using the laravel-seo package with Filament Admin and Forms

Combine the power of Laravel SEO and Filament PHP. This package is a convenient helper for using the laravel-seo package with Filament Admin and Forms

Ralph J. Smit 39 Dec 21, 2022
Easily add Laravel Telescope and Horizon to Filament admin panel.

Filament Debugger This is where your description should go. Limit it to a paragraph or two. Consider adding a small example. Installation You can inst

Stephen Jude 5 Nov 24, 2022
Access laravel log through Filament admin panel

Access laravel log through Filament admin panel Features Syntax highlighting Quickly jump between start and end of the file Refresh log contents Clear

Guilherme Saade 20 Nov 22, 2022
A media picker plugin for Filament Admin.

Filament Curator A media picker plugin for Filament Admin. ‼️ This package is still in development ‼️ This package does not work with Spatie Media Lib

Adam Weston 84 Jan 7, 2023
Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items.

Filament Quick Create Plugin for Filament Admin that adds a dropdown menu to the header to quickly create new items from any page. Installation Instal

Adam Weston 45 Dec 27, 2022
Filament Admin Panel application installer.

Filament Installer Install globally with composer. composer global require awcodes/filament-installer Now you can run the new command to quickly set u

Adam Weston 7 Dec 18, 2022
Entrust is a succinct and flexible way to add Role-based Permissions to Laravel 5.

ENTRUST (Laravel 5 Package) Entrust is a succinct and flexible way to add Role-based Permissions to Laravel 5. If you are looking for the Laravel 4 ve

Zizaco 6.1k Dec 31, 2022
A demo of how to use filament/forms to build a user-facing Form Builder which stores fields in JSON.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Dan Harrin 41 Dec 24, 2022
Implementation Package Spatie/Laravel-Permission

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

M Rizal 3 Sep 12, 2021
A simple profile management page for Filament. ✨

A simple profile page for Filament. This package provides a very simple Profile page that allows the current user to manage their name, email address

Ryan Chandler 65 Jan 5, 2023
Customize Login and Register Page for User/Admin in Laravel v8

Customize Login and Register Page for User/Admin in Laravel v8

Gaurang Kumar 1 Jan 28, 2022
User authentication REST API with Laravel (Register, Email verification, Login, Logout, Logged user data, Change password, Reset password)

User Authentication API with Laravel This project is a user authentication REST API application that I developed by using Laravel and MySql. Setup Fir

Yusuf Ziya YILDIRIM 3 Aug 23, 2022
A CMS start kit for websites, built on Filament and Laravel.

TrovCMS TrovCMS is a start kit for websites, built on Filament and Laravel. Install globally with composer. composer global require trovcms/installer

TrovCMS 12 Oct 20, 2022
Easily interact and control your feature flags from Filament

Easily interact and control your feature flags from Filament

Ryan Chandler 32 Nov 29, 2022
Social login for Filament through Laravel Socialite

Social login for Filament through Laravel Socialite Add OAuth login through Laravel Socialite to Filament. Installation You can install the package vi

Dutch Coding Company 44 Dec 26, 2022
This package provides a Filament resource to view all Laravel sent emails.

This package provides a Filament resource to view all Laravel outgoing emails. It also provides a Model for the database stored emails. Installation Y

Ramón E. Zayas 22 Jan 2, 2023
Add a general-purpose tools page to your Filament project. 🛠

Add a general-purpose tools page to your Filament project. Installation You can install the package via Composer: composer require ryangjchandler/fila

Ryan Chandler 24 Dec 6, 2022
The Most Popular JavaScript Calendar as a Filament Widget 💛

The Most Popular JavaScript Calendar as a Filament Widget ?? Features Accepts all configurations from FullCalendar Event click and drop events Upcomin

Guilherme Saade 62 Dec 31, 2022