From: Vincent Vanwaelscappel Date: Fri, 11 Dec 2020 19:24:52 +0000 (+0100) Subject: wip #3753 @4 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=07cb05a6d1c5142933eca35017c24747a06f4b7e;p=cubist_cms-back.git wip #3753 @4 --- diff --git a/src/app/Magic/Fields/ColumnValue.php b/src/app/Magic/Fields/ColumnValue.php new file mode 100644 index 0000000..2933c9f --- /dev/null +++ b/src/app/Magic/Fields/ColumnValue.php @@ -0,0 +1,10 @@ +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'); } } diff --git a/src/app/Magic/Fields/Model.php b/src/app/Magic/Fields/Model.php index 75f14a9..02a4fc8 100644 --- a/src/app/Magic/Fields/Model.php +++ b/src/app/Magic/Fields/Model.php @@ -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]; } diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index 0e5d503..b0a9847 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -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(); + } + } } diff --git a/src/app/Magic/Models/CubistMagicAuthenticatable.php b/src/app/Magic/Models/CubistMagicAuthenticatable.php index 043136d..a4ce6fb 100644 --- a/src/app/Magic/Models/CubistMagicAuthenticatable.php +++ b/src/app/Magic/Models/CubistMagicAuthenticatable.php @@ -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 index 0000000..aeaed31 --- /dev/null +++ b/src/resources/views/fields/column_value.blade.php @@ -0,0 +1,33 @@ +@php + /** @var $entry Cubist\Backpack\Magic\Models\CubistMagicAbstractModel */ + $column=$entry->getField($field['name'])->getColumnData(); +@endphp + + +@include('crud::fields.inc.wrapper_start') + +@include('crud::fields.inc.translatable_icon') +
+ @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 +
+{{-- HINT --}} +@if (isset($field['hint'])) +

{!! $field['hint'] !!}

+ @endif + + + + +