From beee023084ac35ddf253910a2d4359b5198ca1f6 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 1 Dec 2020 18:44:34 +0100 Subject: [PATCH] wip #3753 @0.5 --- src/app/CubistCrudPanel.php | 13 +++++++++++-- src/app/Http/Controllers/CubistCrudController.php | 11 ++--------- .../Http/Controllers/Operations/ListOperation.php | 13 +++++++++++++ .../Magic/Controllers/CubistMagicController.php | 8 -------- src/app/Magic/Models/CubistMagicAbstractModel.php | 15 ++++++++++----- 5 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 src/app/Http/Controllers/Operations/ListOperation.php diff --git a/src/app/CubistCrudPanel.php b/src/app/CubistCrudPanel.php index 5199ad7..0a2375f 100644 --- a/src/app/CubistCrudPanel.php +++ b/src/app/CubistCrudPanel.php @@ -61,6 +61,17 @@ class CubistCrudPanel extends CrudPanel return true; } + public function addOwnerClause($user) + { + if (!$this->model instanceof CubistMagicAbstractModel) { + return; + } + if ($this->model->canAdmin($user)) { + return; + } + $this->model->addOwnerClause($this,$user); + } + public function hasAccess($operation) { // First filter with standard backpack gate @@ -92,8 +103,6 @@ class CubistCrudPanel extends CrudPanel } else { $res = true; } - - return true; return $res; } diff --git a/src/app/Http/Controllers/CubistCrudController.php b/src/app/Http/Controllers/CubistCrudController.php index ba1165b..803ad2d 100644 --- a/src/app/Http/Controllers/CubistCrudController.php +++ b/src/app/Http/Controllers/CubistCrudController.php @@ -5,15 +5,8 @@ namespace Cubist\Backpack\app\Http\Controllers; use Backpack\CRUD\app\Http\Controllers\CrudController; -use Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation; -use Backpack\ReviseOperation\ReviseOperation; -use Cubist\Backpack\app\Http\Controllers\Operations\BulkPublishOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\ListOperation; -use Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; + +use Cubist\Backpack\app\Http\Controllers\Operations\ListOperation; use Cubist\Backpack\app\Http\Controllers\Operations\MediaOperation; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; diff --git a/src/app/Http/Controllers/Operations/ListOperation.php b/src/app/Http/Controllers/Operations/ListOperation.php new file mode 100644 index 0000000..58ef584 --- /dev/null +++ b/src/app/Http/Controllers/Operations/ListOperation.php @@ -0,0 +1,13 @@ +crud->addOwnerClause(backpack_user()); + } +} diff --git a/src/app/Magic/Controllers/CubistMagicController.php b/src/app/Magic/Controllers/CubistMagicController.php index 7104806..c0ae0f6 100644 --- a/src/app/Magic/Controllers/CubistMagicController.php +++ b/src/app/Magic/Controllers/CubistMagicController.php @@ -9,16 +9,12 @@ use Cubist\Backpack\app\Magic\Menu\Menu; use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel; use Cubist\Backpack\app\Magic\Models\CubistMagicTranslatableModel; use Cubist\Backpack\app\Magic\Requests\CubistMagicRequest; -use Cubist\Backpack\app\Magic\Requests\CubistMagicStoreRequest; use Cubist\Backpack\app\Magic\Requests\CubistMagicUpdateRequest; use Cubist\Backpack\CubistBackpackServiceProvider; -use DebugBar\DebugBar; use Gaspertrix\Backpack\DropzoneField\Traits\HandleAjaxMedia; use Illuminate\Support\Arr; use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Redirect; -use Illuminate\Support\Facades\Route; class CubistMagicController extends CubistCrudController { @@ -67,7 +63,6 @@ class CubistMagicController extends CubistCrudController $this->crud->enablePersistentTable(); } - $this->crud->allowAccess('revisions'); $this->crud->setEditView('cubist_back::edit'); if ($this->_nested) { @@ -75,9 +70,6 @@ class CubistMagicController extends CubistCrudController $this->crud->enableReorder('name', 4); } -// $this->crud->with('revisionHistory'); - - if ($this->_bulk) { if ($model->translationEnabled()) { $this->crud->addButton('bottom', 'bulk_translate', 'view', CubistBackpackServiceProvider::NAMESPACE . '::buttons.bulk_translate', 'begining'); diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index 1eab9f2..a45b550 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -8,6 +8,7 @@ use Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation; use Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation; use Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation; +use Cubist\Backpack\app\CubistCrudPanel; use Cubist\Backpack\app\Http\Controllers\Operations\BulkPublishOperation; use Backpack\ReviseOperation\ReviseOperation; use Backpack\CRUD\app\Library\CrudPanel\CrudPanel; @@ -49,7 +50,6 @@ class CubistMagicAbstractModel extends Model implements HasMedia protected $_operations = []; public $timestamps = true; - protected $_policy = null; protected $_enableClone = true; protected $_enableDeletion = true; protected $_enableEdition = true; @@ -681,6 +681,15 @@ class CubistMagicAbstractModel extends Model implements HasMedia return null !== $user && ($this->canAdmin($user) || $this->getAttribute($this->_ownerAttribute) === $user->id); } + /** + * @param $crud CubistCrudPanel + * @param $user CubistMagicAuthenticatable + */ + public function addOwnerClause($crud, $user) + { + $crud->addClause('where', $this->_ownerAttribute, $user->id); + } + /** * @param $user CubistMagicAuthenticatable * @return bool @@ -767,8 +776,4 @@ class CubistMagicAbstractModel extends Model implements HasMedia return $this->canUpdate($user); } - public function getPolicyClass() - { - return $this->_policy; - } } -- 2.39.5