]> _ Git - cubist_cms-back.git/commitdiff
wip #3753 @4
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 11 Dec 2020 19:24:52 +0000 (20:24 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 11 Dec 2020 19:24:52 +0000 (20:24 +0100)
src/app/Magic/Fields/ColumnValue.php [new file with mode: 0644]
src/app/Magic/Fields/Field.php
src/app/Magic/Fields/Model.php
src/app/Magic/Models/CubistMagicAbstractModel.php
src/app/Magic/Models/CubistMagicAuthenticatable.php
src/resources/views/fields/column_value.blade.php [new file with mode: 0644]

diff --git a/src/app/Magic/Fields/ColumnValue.php b/src/app/Magic/Fields/ColumnValue.php
new file mode 100644 (file)
index 0000000..2933c9f
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+
+
+namespace Cubist\Backpack\Magic\Fields;
+
+
+class ColumnValue extends StaticValue
+{
+    protected $_adminType = 'column_value';
+}
index 4e3c54d52538418dff060f26fe562d93a1e08e2a..55db62a33d7486f8b11d0e72cb82dffecccc534d 100644 (file)
@@ -292,6 +292,10 @@ class Field implements \ArrayAccess
             $this->setAttribute('wrapperAttributes', $wrapperAttributes);
         }
 
+    }
+
+    public function setPermissions()
+    {
         if (null !== $this->getAttribute('can', null)) {
             if (!can($this->getAttribute('can'))) {
                 $this->setAttribute('preview', false);
@@ -305,7 +309,7 @@ class Field implements \ArrayAccess
 
         if (null !== $this->getAttribute('can_write', null)) {
             if (!can($this->getAttribute('can_write'))) {
-                $this->setAttribute('type', 'static');
+                $this->setAttribute('type', 'column_value');
                 $this->setAttribute('view_namespace', CubistBackpackServiceProvider::NAMESPACE . '::fields');
             }
         }
index 75f14a927242fe1ffaf647c6d883448a57a76fb7..02a4fc8e87807c07714227484e90cc2c2d280422 100644 (file)
@@ -20,8 +20,13 @@ class Model extends Field
 
     public function pluck($attr)
     {
+        $bui = '';
+        if (backpack_user() !== null) {
+            $bui = backpack_user()->id;
+        }
+
         $modelClass = $this->getAttribute('optionsmodel');
-        $cacheKey = '_getOption_Model_' . $modelClass . '-' . $attr;
+        $cacheKey = '_getOption_Model_' . $modelClass . '-' . $attr . '-' . $bui;
         if (isset(static::$_options[$cacheKey])) {
             return static::$_options[$cacheKey];
         }
index 0e5d50320e10705587a12edf776a07f70f08c538..b0a9847bbe039bf2b08d810fb044befd8f64d1c4 100644 (file)
@@ -170,6 +170,11 @@ class CubistMagicAbstractModel extends Model implements HasMedia
         }
 
         $this->fakeColumns = array_unique($this->fakeColumns);
+        if (get_class($this) !== config("auth.providers.users.model")) {
+            foreach ($this->_fields as $name => $field) {
+                $field->setPermissions();
+            }
+        }
     }
 
 
index 043136d1901348503b5d8df14367ffdd14aa3e24..a4ce6fb42deb6f599c44a8b55d433c10d1843807 100644 (file)
@@ -58,11 +58,6 @@ class CubistMagicAuthenticatable extends CubistMagicAbstractModel
             'type' => 'checkbox',
             'tab' => 'Login']);
 
-        $this->addField(['name' => 'rolesandperms',
-            'label' => '',
-            'type' => 'RolesPermissions',
-            'tab' => 'Roles & Permissions']);
-
         $this->addField(['name' => 'remember_token',
             'type' => 'Text',
             'hidden' => true,
@@ -78,12 +73,22 @@ class CubistMagicAuthenticatable extends CubistMagicAbstractModel
         $this->addField(['name' => 'password',
             'label' => 'Password',
             'type' => 'Password',
-            'tab' => 'Login'
+            'tab' => 'Login',
+           'can'=>'users:admin'
         ]);
 
         $this->addField(['name' => 'api_token',
             'label' => 'API Token',
             'type' => 'APIToken',
-            'tab' => 'Login']);
+            'tab' => 'Login',
+            'can'=>'users:admin'
+        ]);
+
+        $this->addField(['name' => 'rolesandperms',
+            'label' => '',
+            'type' => 'RolesPermissions',
+            'tab' => 'Login',
+            'can'=>'users:admin'
+        ]);
     }
 }
diff --git a/src/resources/views/fields/column_value.blade.php b/src/resources/views/fields/column_value.blade.php
new file mode 100644 (file)
index 0000000..aeaed31
--- /dev/null
@@ -0,0 +1,33 @@
+@php
+    /** @var $entry Cubist\Backpack\Magic\Models\CubistMagicAbstractModel */
+    $column=$entry->getField($field['name'])->getColumnData();
+@endphp
+
+<!-- text input -->
+@include('crud::fields.inc.wrapper_start')
+<label>{!! $field['label'] !!}</label>
+@include('crud::fields.inc.translatable_icon')
+<div>
+    @if (!isset($column['type']))
+        @include('crud::columns.text')
+    @else
+        @if(view()->exists('vendor.backpack.crud.columns.'.$column['type']))
+            @include('vendor.backpack.crud.columns.'.$column['type'])
+        @else
+            @if(view()->exists('crud::columns.'.$column['type']))
+                @include('crud::columns.'.$column['type'])
+            @else
+                @include('crud::columns.text')
+            @endif
+        @endif
+    @endif
+</div>
+{{-- HINT --}}
+@if (isset($field['hint']))
+    <p class="help-block">{!! $field['hint'] !!}</p>
+    @endif
+    </div>
+
+
+
+