如果不是管理员,请删除模型管理员搜索/过滤器选项

时间:2017-05-24 03:33:25

标签: silverstripe

如果登录的用户不是管理员,我希望能够隐藏模型管理员提供的搜索/过滤器选项。

目前我们有“摄影师”权限设置,并且不希望他们能够使用/查看这些过滤器。

这可能吗?

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以在程序上定义searchableFields

class MyDataObject .... 
{
  public function searchableFields()
  {
    if($someCondition) return;
    return parent::searchableFields();
  }
}

答案 1 :(得分:1)

我正在使用scaffoldSearchFields()所以我采用了@UncleCheese方式并将其应用于它,这给了我之后的结果:

public function scaffoldSearchFields($_params = null) {
        $fields = parent::scaffoldSearchFields($_params);

        $salesRegionDropdown = DropdownField::create(
            'SalesRegion',
            'Sales Region',
            SalesRegion::get()->map('ID', 'Region')->toArray()
        )->setEmptyString('-- Please choose a sales region --');

        $fields->replaceField('SalesRegion', $salesRegionDropdown);

        .....

        if (!Permission::check('ADMIN')) {
            return false;
        }

        return $fields;
    }