Correzioni minori sul modulo iniziale

This commit is contained in:
Dasc3er 2021-02-20 13:31:52 +01:00
parent f77fed7d3a
commit 14a09053a1
5 changed files with 45 additions and 13 deletions

View File

@ -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();
}
}

2
legacy

@ -1 +1 @@
Subproject commit a16fde169ef871abf4d2a6dec12967d1e4a29140
Subproject commit 0b21ecf084f81a8c4178fce4808c4026d937d12c

View File

@ -118,14 +118,13 @@
<p>{{ tr('La filosofia del software libero fa sì che il progetto sia <b>accessibile a tutti</b> e nel nostro caso specifico lo è, anche dal punto di vista della gratuità') }}.</p>
<p>{{ 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 <b>grande simbolo di apprezzamento</b>') }}.</p>
<p>{{ 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 <b>grande simbolo di apprezzamento</b>') !!}.</p>
<a href="http://sourceforge.net/donate/index.php?group_id=236538" class="btn btn-lg btn-success btn-block" target="_blank"><i class="fa fa-usd"></i> {{ tr('Supporta questo progetto') }}</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="box box-outline box-success">
<div class="box-header">
@ -135,11 +134,11 @@
<div class="box-body">
<p>{{ tr('Per le aziende che hanno necessità di essere seguite da <b>supporto professionale</b> è disponibile un servizio di assistenza e supporto a pagamento') }}.</p>
<p>{{ tr("E' disponibile anche un <b>servizio cloud</b> su cui poter installare OpenSTAManager, in modo da non doverti più preoccupare di backup e gestione dei dati") }}.</p>
<p>{!! tr("E' disponibile anche un <b>servizio cloud</b> su cui poter installare OpenSTAManager, in modo da non doverti più preoccupare di backup e gestione dei dati") !!}.</p>
<p><a href="http://www.openstamanager.com/per-le-aziende/" class="btn btn-lg btn-info btn-block" target="_blank"><i class="fa fa-thumbs-up"></i> {{ tr('Ottieni supporto professionale') }}</a></p>
</div>
</div>
</div>
</div>
@endsection(
@endsection

View File

@ -265,8 +265,8 @@
</div>
</div>
<ul class="sidebar-menu"><!-- class="nav nav-pills nav-sidebar nav-sidebar nav-child-indent flex-column" data-widget="treeview" role="menu" data-accordion="true" -->
{{ isset($main_menu) ? $main_menu : null }}
<ul class="sidebar-menu"><!-- class="nav nav-pills nav-sidebar nav-sidebar nav-child-indent flex-column" data-widget="treeview" role="menu" data-accordion="true" isset($main_menu) ? $main_menu : null -->
{!! Modules::getMainMenu() !!}
</ul>
</section>
<!-- /.sidebar -->

View File

@ -21,8 +21,8 @@ use Illuminate\Support\Facades\Route;
require __DIR__.'/auth.php';
// Redirect predefinito a seguito del login
Route::get('/', function (){
$module = module('Dashboard');
Route::get('/', function () {
$module = auth()->user()->getFirstAvailableModule();
return redirect('controller.php?id_module='.$module->id);
})