File manager - Edit - /var/www/html/gop/api/app/Traits/HasPrivateFields.php
Back
<?php namespace App\Traits; use App\Models\ModelPrivateField; trait HasPrivateFields { public function toArray() { if ($this->userCanViewPrivateFields()) { return parent::toArray(); } $array = parent::toArray(); $privateFields = $this->getPrivateFields(); return array_diff_key($array, array_flip($privateFields)); } protected function userCanViewPrivateFields() { return auth()->check() && in_array('gerenciar-campos-ocultos', auth()->user()->permissions['gop'] ?? []); } public function getPrivateFields() { $config = ModelPrivateField::where('model_type', get_class($this)) ->where('model_id', $this->id) ->first(); if ($config) { return json_decode($config->private_fields, true); } return []; } public function setPrivateFields(array $privateFields) { if (empty($privateFields)) { ModelPrivateField::where('model_type', get_class($this)) ->where('model_id', $this->id) ->delete(); } else { ModelPrivateField::updateOrCreate( [ 'model_type' => get_class($this), 'model_id' => $this->id, ], [ 'private_fields' => json_encode($privateFields), ] ); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings