【问题标题】:A way to order roles一种排序角色的方法
【发布时间】:2019-12-19 09:16:16
【问题描述】:

我正在寻找一种方式来安排我的角色。作为角色排名。

让我解释一下,我的用户可以创建角色。一个角色可以比另一个角色更优秀,我正在寻找一种方法来做到这一点。

用户可以创建一个新用户,并选择他将拥有的角色,我想限制某些角色。版主不能创建管理员或版主,只能创建普通用户。

这是我的榜样:

class Role extends Model
{
    use Notifiable;

    /**
     * The attribute that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name',
        'description'
    ];

    public function permissions()
    {
        return $this->hasOne(Permissions:class);
    }
}

每个角色都有自己的权限。

你有什么想法吗?

【问题讨论】:

  • 有一些 Laravel 包可以处理角色 google.com/search?q=laravel+roles&oq=laravel+roles 。也许看看他们是怎么做的,或者你可以使用其中一个并节省一些时间?我查看了其中一个具有关卡功能的产品。然后您可以验证用户只能创建具有相同级别或更低级别权限的用户。
  • 谢谢,我去看看!我自己做的,但我认为它不是很稳定

标签: php mysql laravel


【解决方案1】:

角色和权限是添加到 Laravel 应用程序的常见功能,我发现有一些非常好的库可供选择,例如 Spatie 家伙 (https://docs.spatie.be/laravel-permission/v3/introduction/) 的 laravel-permission

即使你不选择现有的库,原则也是一样的。

  1. 一个Role 会有很多Permission
  2. 每个Permission 都将授予对操作和/或区域的访问权限
  3. 执行操作时会检查当前经过身份验证的用户是否具有权限(通常通过中间件)

因此,如果您想限制“版主”创建“管理员”或“版主”用户的能力,请为其创建一个权限,如“可以创建管理员用户”,并将其仅分配给“管理员”用户。

所以你并不是真的“排序”或“排序”你的Roles,把它想象成一个角色只是Permissions 的集合

【讨论】:

  • 谢谢!我会用那个
猜你喜欢
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 2014-06-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多