参考文档:https://doc.fastadmin.net/doc/168.html
自定义接口权限
默认情况下,接口的权限完全是根据当人登录人的账号角色来判定的。
比如当前登录人是角色A,那么角色A没有菜单的权限,就访问不了这个接口。
但是,如果你想自定义的话,可以通过代码实现。很简单。
注意:菜单的名字完全是根据接口的注释来命名的。

<?phpnamespace app\admin\controller;use app\common\controller\Backend;/***** @icon fa fa-circle-o*/class Article extends Backend{/*** 无需登录的方法,同时也就不需要鉴权了* @var array*/protected $noNeedLogin = ['mywork1'];/*** 无需鉴权的方法,但需要登录* @var array*/protected $noNeedRight = ['mywork2'];/*** Article模型对象* @var \app\admin\model\Article*/protected $model = null;public function _initialize(){parent::_initialize();$this->model = new \app\admin\model\Article;$this->view->assign("statusList", $this->model->getStatusList());}public function import(){parent::import();}/*** 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改*//*** mywork1* @return string*/public function mywork1(){return "无需登录和鉴权";}/*** mywork2* @return string*/public function mywork2(){return "无需鉴权 但是需要登录";}}
这样的话,即便角色A没有这个mywork2的权限,也可以访问。
自定义数据权限
https://doc.fastadmin.net/doc/controller.html#toc-3
就是说,自己就能看自己创建的数据。或者是自己只能看自己和下级创建的东西。
第一步:在数据库添加字段 admin_id int类型
第二步:在controller层加上
protected $dataLimit = 'auth'; //默认基类中为false,表示不启用,可额外使用auth和personal两个值protected $dataLimitField = 'admin_id'; //数据关联字段,当前控制器对应的模型表中必须存在该字段====== 注释 =======$dataLimit = false; //表示不启用,显示所有数据$dataLimit = 'auth'; //表示显示当前自己和所有子级管理员的所有数据$dataLimit = 'personal'; //表示仅显示当前自己的数据
