5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8263|回复: 0

[fastadmin教程] fastadmin 数据限制 谁看谁自己的 或 能看下级的

[复制链接]

670

主题

785

帖子

8228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8228
发表于 2021-5-5 20:06:37 | 显示全部楼层 |阅读模式
在后台开发的过程中经常会有这样的一个需求,每个管理员单独管理自己添加的数据或单独管理自己下级管理员添加的数据,管理员之间的数据是不相通的,每个管理员看到的数据是不同的。在FastAdmin中可以很方便的实现此功能。

首先我们需要在当前控制器添加以下两个属性

  1. protected $dataLimit = 'auth'; //默认基类中为false,表示不启用,可额外使用auth和personal两个值
  2. protected $dataLimitField = 'admin_id'; //数据关联字段,当前控制器对应的模型表中必须存在该字段
复制代码
$dataLimit = false; //表示不启用,显示所有数据
$dataLimit = 'auth'; //表示显示当前自己和所有子级管理员的所有数据
$dataLimit = 'personal'; //表示仅显示当前自己的数据
$dataLimitField字段默认为admin_id,请注意添加该字段类型为int(10)。


通过以上配置后,在列表加载数据的时候将默认添加条件过滤不属于自己权限的数据,同时在添加时会自动维护admin_id的数据,在编辑、删除的时候会自动控制权限避免越权操作。

如果需要将原有的数据加入到FastAdmin后台管理权限控制当中,比如已有的数据已经有标识归属,但这个归属体系并非是FastAdmin的后台管理员体系。在这个时候我们就需要重写基类的getDataLimitAdminIds方法,将此方法返回数据标识的归属ID数组集合,这样即可使用FastAdmin的后台管理权限进行管理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-3-29 08:56 , Processed in 0.140625 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表