Laravel 中的 RBAC 管理
Posted
技术标签:
【中文标题】Laravel 中的 RBAC 管理【英文标题】:RBAC management in Laravel 【发布时间】:2017-03-19 02:05:30 【问题描述】:我想在 Laravel 中添加一个包来管理角色和权限,
我找到了一些包:
https://cartalyst.com/manual/sentinel/2.0 http://docs.toddish.co.uk/verify/laravel-5/ https://github.com/Zizaco/entrust但我不知道哪个更好!
我的要求:
我已经有一个管理面板和用户管理系统,现在我想添加一个用于添加用户组的部分,这样我就可以从管理面板创建用户组,然后将权限分配给用户组,然后我可以将用户分配给组。 在站点中,我应该验证用户访问权限。
我想知道我可以使用 db 和管理面板使用这些软件包管理组和角色吗?
【问题讨论】:
试试github.com/Zizaco/entrust @AbuSayem 谢谢,您有任何将权限集成到数据库中的教程吗? 阅读其文档。我认为这是有据可查的 你应该试试 php-Casbin 及其 Laravel 中间件:github.com/php-casbin/laravel-authz 【参考方案1】:我使用了 entrust,它非常好,可扩展的基于角色的访问控制。
我可以给你一个快速的开始:
使用 composer 安装。 为config/app.php
添加别名
运行 php artisan vendor:publish
打开您的config/auth.php
并添加以下内容:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => Namespace\Of\Your\User\Model\User::class,
'table' => 'users',
],
],
如果你想使用中间件并且你应该使用然后添加:
'role' => \Zizaco\Entrust\Middleware\EntrustRole::class,
'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class,
'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class,
在 config/auth.php 中设置属性值。这些值将是 entrust 用来引用正确的用户表和模型。
生成 Entrust 迁移:
php artisan entrust:migration
然后php artisan migrate
注意:检查您的迁移表。
现在添加模型:Role
、Permission
供两者使用 use Zizaco\Entrust\EntrustRole;
在您的User
模型中使用use Zizaco\Entrust\Traits\EntrustUserTrait;
。
还有composer dump-autoload
。
你可以走了。
要添加角色和权限,您应该有视图,用于在表中添加列表用户以及角色的视图,就像您编辑用户时一样,下拉列表中应该有一个角色选项。
那么对于角色,应该有类似的权限,admin
拥有read,write,delete
的权限。所以现在您有一个视图,您可以在其中授予角色权限。
休息是你自己的逻辑,你的需要。
【讨论】:
谢谢,但我想知道如何从管理面板向数据库添加角色和权限,如何添加新组和权限?我应该手动添加到Role
、Permission
表吗?以上是关于Laravel 中的 RBAC 管理的主要内容,如果未能解决你的问题,请参考以下文章
使用 Entrust 扩展包在 Laravel 5 中实现 RBAC 权限管理与安装配置
Laravel9+Vue+ElementUI实现RBAC权限管理系统