數據限制
在后台開發的過程中經常會有這樣的一個需求,每個管理員單獨管理自己添加的數據或單獨管理自己下級管理員添加的數據,管理員之間的數據是不相通的,每個管理員看到的數據是不同的。在FastAdmin中可以很方便的實現此功能。
首先我們需要在當前控制器添加以下兩個屬性
protected $dataLimit = 'auth'; //默認基類中為false,表示不啟用,可額外使用auth和personal兩個值 protected $dataLimitField = 'admin_id'; //數據關聯字段,當前控制器對應的模型表中必須存在該字段 $dataLimit = false; //表示不啟用,顯示所有數據 $dataLimit = 'auth'; //表示顯示當前自己和所有子級管理員的所有數據 $dataLimit = 'personal'; //表示僅顯示當前自己的數據
$dataLimitField
字段默認為admin_id
,請注意添加該字段類型為int(10)
。
通過以上配置后,在列表加載數據的時候將默認添加條件過濾不屬於自己權限的數據,同時在添加時會自動維護admin_id
的數據,在編輯、刪除的時候會自動控制權限避免越權操作。
如果需要將原有的數據加入到FastAdmin后台管理權限控制當中,比如已有的數據已經有標識歸屬,但這個歸屬體系並非是FastAdmin的后台管理員體系。在這個時候我們就需要重寫基類的getDataLimitAdminIds
方法,將此方法返回數據標識的歸屬ID數組集合,這樣即可使用FastAdmin的后台管理權限進行管理。