解决方案森林/丝状体访问管理

2.2.0 2024-08-12 07:23 UTC

This package is not auto-updated.

Last update: 2024-09-23 08:12:47 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

这是一个 Filament Admin 的身份验证插件,适用于 Laravel-permission

安装

  1. 确保您已经安装了 Filament 面板。

  2. 您可以通过 composer 安装此包

    composer require solution-forest/filament-access-management
  3. 将必要的特质添加到您的 User 模型中

    use SolutionForest\FilamentAccessManagement\Concerns\FilamentUserHelpers;
    
    class User extends Authenticatable
    {
        use FilamentUserHelpers;
    }
  4. 清除您的配置缓存:

     php artisan optimize:clear
     # or
     php artisan config:clear
  5. 在您的面板提供者中注册插件

    重要:从版本 2.x 开始,在您的面板提供者中注册插件

     use SolutionForest\FilamentAccessManagement\FilamentAccessManagementPanel;
    
     public function panel(Panel $panel): Panel
     {
         return $panel
             ->plugin(FilamentAccessManagementPanel::make());
     }
  6. 然后执行以下命令

    php artisan filament-access-management:install

    如果您还没有名为 admin 的用户,此命令将创建具有以下凭据的 超级管理员用户

    • 姓名:admin
    • 电子邮件地址:admin@("slug" 模式从 config("app.name")).com
    • 密码:admin

    您还可以使用以下方式创建超级管理员用户

    php artisan make:super-admin-user
  7. 调用升级命令以在版本 2.2.0 之后升级数据

    php artisan filament-access-management:upgrade

发布配置、视图、翻译和迁移

您可以使用以下方式发布配置、视图、翻译和迁移

php artisan vendor:publish --tag="filament-access-management-config"

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

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

php artisan vendor:publish --tag="filament-access-management-migrations"

迁移

php artisan migrate

用法

安装后,将创建“菜单”、“用户”、“角色”和“权限”页面。每个用户都有角色,每个角色都有权限。

image

管理菜单:image

管理用户及其角色:image image

管理角色及其权限:image image

管理权限:image image

路由控制

在此插件中,权限和路由绑定在一起,在编辑权限页面中设置当前权限可以访问的路由,在 HTTP 方法 选择框中选中访问路由的方法,并在 HTTP 路径 中填写可以访问的路径。

例如,如果您要添加一个可以访问路径 /admin/usersGET 权限,请在 HTTP 方法 选择 GET,并在 HTTP 路径 中填写 /users

如果您想访问以 /admin/users 为前缀的所有路径,请在 HTTP 路径 中填写 /users*;如果您想访问编辑页面,请在 HTTP 路径 中填写 /users/*/edit;如果多个路径中的每个路径的方法不同,请在 HTTP 路径 中填写 GET:users/*

如果上述方法不足以满足需求,HTTP 路径 还支持 路由别名,例如 admin.users.show

超级管理员

创建超级管理员用户

php artisan make:super-admin-user

检查权限

# Check by permission's name
\SolutionForest\FilamentAccessManagement\Http\Auth\Permission::check($name)

# Check by http_path
\SolutionForest\FilamentAccessManagement\Http\Auth\Permission::checkPermission($path)

获取当前用户

\SolutionForest\FilamentAccessManagement\Facades\FilamentAuthenticate::user();

高级使用

默认情况下,创建的菜单将与filament的原始菜单共存。要使用本包中的菜单覆盖原始菜单,请按以下方式修改/config/filament-access-management.php

  1. 设置filament.navigation.enabled => true
    'filament' => [
        ...
        'navigation' => [
            /**
             * Using db based filament navigation if true.
             */
            'enabled' => true,
            /**
             * Table name db based filament navigation.
             */
            'table_name' => 'filament_menu',
            /**
             * Filament Menu Model.
             */
            'model' => Models\Menu::class,
        ]
        ...
    ]

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

贡献

请参阅贡献指南以获取详细信息。

安全漏洞

请参阅我们的安全策略以了解如何报告安全漏洞。

鸣谢

许可

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