patrickcurl/filament-auth

Filament Admin 的用户和角色(通过 Spatie Roles/Permissions)管理资源,从 phpsa/filament-authentication 分支而来,增加了 Bouncer 作为权限选项。

v3.0.1 2022-09-29 01:39 UTC

This package is auto-updated.

Last update: 2024-08-29 05:44:37 UTC


README

Latest Version on Packagist Semantic Release Total Downloads

Filament 用户身份验证

使用 Spatie 的角色和权限,为 Filament Admin 提供用户资源

安装

您可以通过 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 Roles & Permissions

如果您尚未安装此包,请执行以下步骤

    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 特性添加到您的 Users 模型中,并在 User 模型中添加以下方法
    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

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

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

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

Laravel Impersonate

如果您尚未配置此包,它将由安装自动添加,请执行以下步骤

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

安全性

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

下一版本计划更新 enabled 以接受回调函数,以允许使用角色等

个人资料

当前认证用户的个人资料查看

扩展

扩展个人资料

<?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 以获取有关最近更改的更多信息。

致谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件