在后台开发的过程中经常会有这样的一个需求,每个管理员单独管理自己添加的数据或单独管理自己下级管理员添加的数据,管理员之间的数据是不相通的,每个管理员看到的数据是不同的。在FastAdmin中可以很方便的实现此功能。
如何实现呢
首先我们需要在当前model下添加以下两个属性
protected $dataLimit = 'auth'; //默认基类中为false,表示不启用,可额外使用auth和personal两个值
protected $dataLimitField = 'admin_id'; //数据关联字段,当前控制器对应的模型表中必须存在该字段
然后再controller下添加
protected $dataLimit = false; //表示不启用,显示所有数据
protected $dataLimit = 'auth'; //表示显示当前自己和所有子级管理员的所有数据
protected $dataLimit = 'personal'; //表示仅显示当前自己的数据
protected $dataLimitField字段默认为admin_id,请注意添加该字段类型为int(10)。
通过以上配置后,在列表数据的时候将默认添加条件过滤不属性自己权限的数据,在添加时会自动维护admin_id的数据,在编辑、删除的时候会自动控制权限避免越权操作。