如何覆盖CrudController的方法并检查权限?

问题描述

我正在使用背包版本4.1

我想在此特征上覆盖index()方法

use \Backpack\CRUD\app\Http\Controllers\Operations\ListOperation;

因为我想在继续之前检查权限。

我不能这样做(下面的代码),因为该方法没有从另一个类继承

public function index()
{
   // my check permisison here

   return parent::index();
}

这行得通,但我不喜欢它,因为我不想停止从背包接收更新

    public function index()
    {
        abort_unless(
            auth()->user()->can('tag_view'),403
        );

        $this->crud->hasAccessOrFail('list');

        $this->data['crud'] = $this->crud;
        $this->data['title'] = $this->crud->getTitle() ?? mb_ucfirst($this->crud->entity_name_plural);

        // load the view from /resources/views/vendor/backpack/crud/ if it exists,otherwise load the one in the package
        return view($this->crud->getListView(),$this->data);
    }

这是原始的索引方法特征。

    public function index()
    {
        $this->crud->hasAccessOrFail('list');

        $this->data['crud'] = $this->crud;
        $this->data['title'] = $this->crud->getTitle() ?? mb_ucfirst($this->crud->entity_name_plural);

        // load the view from /resources/views/vendor/backpack/crud/ if it exists,$this->data);
    }

我想要的东西是这样的,但是因为索引方法返回view();

public function index()
{
  // do my permission here or etc
  return $this->index();
}

如何在CrudController上执行权限检查?像:索引,更新,编辑,删除

请原谅我的无知,因为我是背包和laravel的新手。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...