feiron / fe_roles
角色管理包提供角色 CRUD、守卫等功能。
Requires
- php: >=7.2.1
- laravel/framework: >=5.8
Requires (Dev)
- php: >=7.2.1
- laravel/framework: >=5.8
This package is auto-updated.
Last update: 2024-09-29 05:22:02 UTC
README
建议与 LaraFrame 一起使用
让我们合作吧!
通过邮箱向我报告错误、功能建议、拉取请求等... 或者甚至一起出去玩 :) yu0307@gmail.com
此包允许用户
- 通过权限或角色保护路由
- 通过权限或角色保护内容
- 通过中间件保护路由和内容
- 管理权限或角色的列表
- 扩展权限和角色管理功能
依赖项
- Composer 访问供应商
- PHP 7+
- Laravel 5+
安装
-
请确保您的机器上已安装 composer。有关 composer 安装的说明,请访问 此链接
-
composer 安装正确后,请确保 Laravel 是最新的。
-
导航到您的项目根目录,并运行以下命令来安装 Fe_Roles
composer require FeIron/Fe_Roles
-
此包将向以下路径发布几个文件
- config/fe_roles/
- public/feiron/fe_roles/
-
重要! 此包还将执行几个迁移。请参考以下更改,并在必要时备份您的表。
-
重要! 由于无法自动发布资源,请确保在包的每个更新结束时运行以下命令。
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) 参数来指示系统使用其他用户提供程序类。
-
迁移结束时也会执行播种操作,以创建一些库存权限和角色。
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" 来创建自己的用户提供程序类。
- 保护路由: 注意 可以通过 "|" 分隔多个角色/权限名称。
- 在路由定义中使用链式方法(角色、权限等)
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'); } }
- 保护内容:在 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
];
解释
权限/角色管理功能
本包提供了许多有用的权限/角色管理功能,同时具备扩展管理功能的能力。
通过使用此包与LaraFrame和Fe_Login一起,可以启用用户角色和权限管理。
LaraFrame 支持
此包是为了与LaraFrame配合使用而定制的。
- 通过框架提供的共享控制面板/界面,可以轻松完成权限/角色管理。
- 权限/角色信息可以在用户资料下共同管理。
- 使用框架简化用户权限和角色的管理。
- 出口会自动导入框架中,使得权限/角色信息相关管理变得轻而易举。
支持我们
如果您喜欢这个项目,请考虑给它点一个 Star⭐️ 并在微博上分享。
我非常欢迎任何形式的支持,并将深深地感激👍!谢谢!