zvive/filament-auth

该软件包已被弃用且不再维护。作者建议使用patrickcurl/filament-auth软件包。

Filament管理员用户和角色(通过Spatie Roles/Permissions)管理资源,基于phpsa/filament-authentication开发,增加了Bouncer作为权限选项。

资助软件包维护!
patrickcurl

v3.0.0 2022-09-29 01:23 UTC

This package is auto-updated.

Last update: 2022-09-29 01:40:14 UTC


README

Latest Version on Packagist Semantic Release Total Downloads

Filament用户认证

使用Spatie进行角色和权限管理的Filament管理员用户资源

安装

您可以通过Composer安装此软件包

composer require patrickcurl/filament-auth

现在清除缓存

php artisan optimize:clear

并发布配置

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

可选地发布视图/翻译

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

附加资源

Spatie角色和权限

如果您尚未安装此软件包,请按照以下步骤操作

    composer require spatie/laravel-permission
  1. 您应该使用以下命令发布迁移和config/permission.php配置文件
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate
  1. 将Spatie\Permission\Traits\HasRoles特性添加到您的用户模型中,并在用户模型中添加以下方法
    public function canAccessFilament() : bool
    {
        // Change this per your requirements.
        return $this->hasRole('superadmin');
    }
  1. 根据需要添加角色和权限

更多信息请参阅:https://spatie.be/docs/laravel-permission/v5/introduction

Bouncer角色/权限

如果您尚未安装此软件包,请按照以下步骤操作

  1. 您应该使用以下命令发布迁移和config/permission.php配置文件
php artisan vendor:publish --provider="Silber\Bouncer\BouncerServiceProvider"
php artisan migrate

将以下方法添加到您的用户模型中

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

已实现,但文档即将推出。

Laravel Impersonate

如果您尚未配置此软件包,它将在此安装过程中自动添加,请按照以下步骤操作

  1. 将特性Lab404\Impersonate\Models\Impersonate添加到您的用户模型中。
  2. 设置您的权限:https://github.com/404labfr/laravel-impersonate#defining-impersonation-authorization

安全性

可以使用Laravel策略来保护角色和权限,创建您的策略并在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',
    ];

我们有一个自定义页面特性:FilamentAuth\Traits\PagePolicyTrait和Spatie设置页面特性FilamentAuth\Traits\SettingsPage\PolicyTrait,您可以将它们添加到页面/设置页面中。通过定义模型并将其与viewAny($user)方法相关联,您可以为策略定义是否在导航中显示页面。

小部件

默认情况下,LatestUsersWidget会发布到您的仪表板,您可以通过编辑filament-auth配置文件中的配置来配置/禁用此功能

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

注意,如果存在策略,它还附加到UserPolicy::viewAny策略值

在下一个版本中计划将启用更新为接受回调函数,以允许角色等

个人资料

当前认证用户的配置视图

扩展

扩展配置

<?php

namespace App\Filament\Pages;

use Filament\Pages\Page;
use FilamentAuth\Pages\Profile as PagesProfile;

class Profile extends PagesProfile
{}

或视图: resources/views/vendor/filament-auth/filament/pages/profile.blade.php(您可以发布现有版本)

事件

FilamentAuth\Events\UserCreated 当通过资源创建用户时触发

FilamentAuth\Events\UserUpdated 当通过资源更新用户时触发

与其他包的集成

即将推出

变更日志

请参阅 CHANGELOG 以获取最近更改的更多信息。

鸣谢

  • Phpsa 从这里分支出来,增加了Bouncer。
  • Patrick Curl 此包的维护者。

许可

MIT 许可证(MIT)。请参阅 许可文件 以获取更多信息。