diff --git a/app/Models/User.php b/app/Models/User.php index 3ecc3be00..c752565d0 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Hash; use Intervention\Image\ImageManagerStatic; use Models\Group; use Models\Log; +use Models\Module; use Models\Note; use Models\Upload; use Modules\Anagrafiche\Anagrafica; @@ -24,6 +25,7 @@ class User extends Authenticatable protected $is_admin; protected $gruppo; + protected $first_module; protected $appends = [ 'is_admin', @@ -89,7 +91,7 @@ class User extends Authenticatable public function isAdmin() { - return $this->is_admin; + return $this->getIsAdminAttribute(); } public function getIsAdminAttribute() @@ -153,7 +155,7 @@ class User extends Authenticatable public function setPhotoAttribute($value) { - $module = \Modules::get('Utenti e permessi'); + $module = \module('Utenti e permessi'); $data = [ 'id_module' => $module->id, @@ -220,6 +222,37 @@ class User extends Authenticatable return $database->fetchArray($query); } + /** + * Individua il primo modulo accessibile per l'utente. + * Restituisce null in caso non sia disponibile nessun modulo con i permessi adeguati. + */ + public function getFirstAvailableModule() + { + if (empty($this->first_module)) { + $modules = $this->isAdmin() ? Module::withoutGlobalScope('permission') : $this->group->modules(); + + // Moduli disponibili e navigabili + $available_modules = $modules + ->where('options', '!=', '') + ->where('options', '!=', 'menu') + ->whereNotNull('options'); + + // Modulo indicato nelle Impostazioni + $first_setting = setting('Prima pagina'); + $setting_module = $available_modules->clone() + ->where('id', '=', $first_setting) + ->first(); + + // Primo modulo disponibile in assoluto + $first_module = $available_modules->clone() + ->first(); + + $this->first_module = $setting_module ?: $first_module; + } + + return $this->first_module; + } + /* Relazioni Eloquent */ public function group() @@ -247,8 +280,8 @@ class User extends Authenticatable return $this->belongsTo(Upload::class, 'image_file_id'); } - public function modules() + public function getModules() { - return $this->group->modules(); + return $this->isAdmin() ? Module::all() : $this->group->modules()->all(); } } diff --git a/legacy b/legacy index a16fde169..0b21ecf08 160000 --- a/legacy +++ b/legacy @@ -1 +1 @@ -Subproject commit a16fde169ef871abf4d2a6dec12967d1e4a29140 +Subproject commit 0b21ecf084f81a8c4178fce4808c4026d937d12c diff --git a/resources/views/info/info.blade.php b/resources/views/info/info.blade.php index ba972b852..e89129992 100644 --- a/resources/views/info/info.blade.php +++ b/resources/views/info/info.blade.php @@ -118,14 +118,13 @@
{{ tr('La filosofia del software libero fa sì che il progetto sia accessibile a tutti e nel nostro caso specifico lo è, anche dal punto di vista della gratuità') }}.
-{{ tr('Offriamo supporto a pagamento professionale a chi fosse interessato, ma a chi non interessa il supporto a pagamento e sta comunque utilizzando il software chiediamo una donazione per il lavoro svolto finora e per la possibilità di continuare questo progetto con lo stesso spirito con cui è nato') }}. {{ tr('Le donazioni non ci rendono ricchi, ma sono un grande simbolo di apprezzamento') }}.
+{{ tr('Offriamo supporto a pagamento professionale a chi fosse interessato, ma a chi non interessa il supporto a pagamento e sta comunque utilizzando il software chiediamo una donazione per il lavoro svolto finora e per la possibilità di continuare questo progetto con lo stesso spirito con cui è nato') }}. {!! tr('Le donazioni non ci rendono ricchi, ma sono un grande simbolo di apprezzamento') !!}.
{{ tr('Supporta questo progetto') }} -{{ tr('Per le aziende che hanno necessità di essere seguite da supporto professionale è disponibile un servizio di assistenza e supporto a pagamento') }}.
-{{ tr("E' disponibile anche un servizio cloud su cui poter installare OpenSTAManager, in modo da non doverti più preoccupare di backup e gestione dei dati") }}.
+{!! tr("E' disponibile anche un servizio cloud su cui poter installare OpenSTAManager, in modo da non doverti più preoccupare di backup e gestione dei dati") !!}.