feiron/fe_roles

角色管理包提供角色 CRUD、守卫等功能。

安装: 30

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

语言:JavaScript

2.0 2021-04-01 23:01 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:02 UTC


README

建议与 LaraFrame 一起使用

让我们合作吧!

通过邮箱向我报告错误、功能建议、拉取请求等... 或者甚至一起出去玩 :) yu0307@gmail.com

此包允许用户

  • 通过权限或角色保护路由
  • 通过权限或角色保护内容
  • 通过中间件保护路由和内容
  • 管理权限或角色的列表
  • 扩展权限和角色管理功能

依赖项

安装

  1. 请确保您的机器上已安装 composer。有关 composer 安装的说明,请访问 此链接

  2. composer 安装正确后,请确保 Laravel 是最新的。

  3. 导航到您的项目根目录,并运行以下命令来安装 Fe_Roles

    composer require FeIron/Fe_Roles
    
  4. 此包将向以下路径发布几个文件

    • config/fe_roles/
    • public/feiron/fe_roles/
  5. 重要! 此包还将执行几个迁移。请参考以下更改,并在必要时备份您的表。

  6. 重要! 由于无法自动发布资源,请确保在包的每个更新结束时运行以下命令。

        php artisan vendor:publish --provider="feiron\fe_roles\Fe_RolesServiceProvider" --force
        php artisan migrate --path="/vendor/feiron/fe_roles/src/database/migrations/"
        php artisan db:seed --class=\feiron\fe_roles\database\seeder\RoleSeeder
        php artisan Build:BuildUserClass
    

    重要! 命令 "Build:BuildUserClass" 用于修改系统所需的用户提供程序类。它修改了类 (feiron\fe_roles\models\fe_User.php),使其继承自系统当前使用的用户提供程序类。此包将强制系统使用类 (feiron\fe_roles\models\fe_User.php),因此,我们需要让此类继承自当前用户类。

    您还可以通过修改配置文件 (/config/fe_roles/appconfig.php) 并修改 (target_user_model) 参数来指示系统使用其他用户提供程序类。

  7. 迁移结束时也会执行播种操作,以创建一些库存权限和角色。

    Schema to be Created/Modified
    [fe_roles]:
    id bigint(20) UN AI PK 
    name varchar(191) 
    description varchar(191) 
    rank int(11) 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    ------------------------------------------
    [fe_abilities]:
    id bigint(20) UN AI PK 
    name varchar(191) 
    description varchar(191) 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    ------------------------------------------
    [fe_abilities_targets]:
    ability_id bigint(20) UN PK 
    target_id varchar(36) PK 
    target_type varchar(50) PK 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    ------------------------------------------
    [fe_role_targets]:
    role_id bigint(20) UN PK 
    target_id varchar(36) PK 
    target_type varchar(50) PK 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    ------------------------------------------
    [fe_role_abilities]:
    role_id bigint(20) UN PK 
    ability_id bigint(20) UN PK 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    ------------------------------------------
    [fe_groups]:
    id bigint(20) UN AI PK 
    name varchar(191) 
    description varchar(191) 
    disabled tinyint(1) 
    created_at timestamp 
    updated_at timestamp
    

注意:在迁移过程中,如果遇到显示“指定的键过长”的错误,这是由于 MySQL 版本低于 5.7.7,如果您不想升级 MySQL 服务器,请考虑以下。

在您的 AppServiceProvider 中 ``` use Illuminate\Support\Facades\Schema;

/**
* Bootstrap any application services.
*
* @return void
*/

public function boot()
{
    Schema::defaultStringLength(191);
}
```

更多关于此的信息可以在 此链接 中找到

基本用法

注意: 您可以通过继承 \feiron\fe_roles\models\fe_User.php 或在您的当前用户提供程序类中简单使用 trait "feiron\fe_roles\lib\traits\fe_user_traits" 来创建自己的用户提供程序类。

  1. 保护路由: 注意 可以通过 "|" 分隔多个角色/权限名称。
    • 在路由定义中使用链式方法(角色、权限等)
        Route::get('test', 'controller@method')->name('routename')->role("admin|editor");
    
    • 使用中间件(ProtectByRoles,ProtectBypermission等)并传递作为参数的检查列表
        Route::get('test', 'controller@method')->name('routename')->middleware('ProtectByRoles:admin|editor');
    
    或者在控制器定义中
        class testController extends Controller{
    
            public function __construct()
            {
                $this->middleware('ProtectBypermission:admin|editor')->except('logout');
            }
        }
    
  2. 保护内容:在 blade 文件中,使用以下指令来检查访问级别
        ...
    
        General visible contents ...
        @role([admin,editor])
            this is protected by role admin and editor.
        @endrole
    
        @permission(read)
            this is protected to those who can read.
        @endpermission
    
        ...
    

配置

重要。有一个配置文件将被发布到 /config/fe_roles/appconfig.php。需要适当的配置。示例配置

return [
    'target_user_model'=> 'App\User',
    'usr_provider'=> \feiron\fe_roles\models\fe_User::class,
    'user_name_field'=> false,
    'user_password_field' => false,
    'user_remember_token_field' => false
];

解释

权限/角色管理功能

本包提供了许多有用的权限/角色管理功能,同时具备扩展管理功能的能力。

通过使用此包与LaraFrameFe_Login一起,可以启用用户角色和权限管理。

LaraFrame 支持

此包是为了与LaraFrame配合使用而定制的。

  • 通过框架提供的共享控制面板/界面,可以轻松完成权限/角色管理。
  • 权限/角色信息可以在用户资料下共同管理。
  • 使用框架简化用户权限和角色的管理。
  • 出口会自动导入框架中,使得权限/角色信息相关管理变得轻而易举。

支持我们

如果您喜欢这个项目,请考虑给它点一个 Star⭐️ 并在微博上分享。

我非常欢迎任何形式的支持,并将深深地感激👍!谢谢!