]> _ Git - cubist_cms-back.git/commitdiff
wip #3753 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 1 Dec 2020 17:44:34 +0000 (18:44 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 1 Dec 2020 17:44:34 +0000 (18:44 +0100)
src/app/CubistCrudPanel.php
src/app/Http/Controllers/CubistCrudController.php
src/app/Http/Controllers/Operations/ListOperation.php [new file with mode: 0644]
src/app/Magic/Controllers/CubistMagicController.php
src/app/Magic/Models/CubistMagicAbstractModel.php

index 5199ad73cec399d534812bef59f326bb49422874..0a2375f978be5f061bcc54a2d1fdfe15a7345c68 100644 (file)
@@ -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;
         }
 
index ba1165bc3c27230ec26419d93b4d0b306599991c..803ad2d3375d21fca0a7f55c855217c472f609bc 100644 (file)
@@ -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 (file)
index 0000000..58ef584
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Http\Controllers\Operations;
+
+
+trait ListOperation
+{
+    public function setupListOperation()
+    {
+        $this->crud->addOwnerClause(backpack_user());
+    }
+}
index 7104806ceff1078db2be2251c37e77edee08cf2b..c0ae0f6a805a43aa589e71a3cbd3e592d0f33595 100644 (file)
@@ -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');
index 1eab9f23be14d41826141067bc883e2f635ede3b..a45b550052e2ca4d1f36c7ac4c786b2093d5099c 100644 (file)
@@ -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;
-    }
 }