首页 > 解决方案 > 一种排序角色的方法

问题描述

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

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

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

这是我的榜样:

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);
    }
}

每个角色都有其权限。

你有什么想法吗?

标签: phpmysqllaravel

解决方案


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

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

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

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

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


推荐阅读