where('enabled', true); }); } /** * Restituisce i permessi relativi all'account in utilizzo. * * @return string */ public function getPermissionAttribute() { $result = Auth::user()->is_admin ? 'rw' : $this->pivot->permessi; return !empty($result) ? $result : '-'; } /** * Restituisce i permessi relativi all'account in utilizzo. * * @return string */ public function getViewsAttribute() { $user = Auth::user(); $views = database()->fetchArray('SELECT * FROM `zz_views` WHERE `id_module` = :module_id AND `id` IN ( SELECT `id_vista` FROM `zz_group_view` WHERE `id_gruppo` = ( SELECT `idgruppo` FROM `zz_users` WHERE `id` = :user_id )) ORDER BY `order` ASC', [ 'module_id' => $this->id, 'user_id' => $user->id, ]); return $views; } public function getOptionAttribute() { return !empty($this->options) ? $this->options : $this->options2; } public function getOptionsAttribute($value) { return App::replacePlaceholder($value); } public function getOptions2Attribute($value) { return App::replacePlaceholder($value); } /* Relazioni Eloquent */ public function plugins() { return $this->hasMany(Plugin::class, 'idmodule_to'); } public function prints() { return $this->hasMany(PrintTemplate::class, 'id_module'); } public function views() { return $this->hasMany(View::class, 'id_module'); } public function groups() { return $this->belongsToMany(Group::class, 'zz_permissions', 'idmodule', 'idgruppo'); } public function clauses() { return $this->hasMany(Clause::class, 'idmodule'); } public function children() { return $this->hasMany(self::class, 'parent') ->orderBy('order'); } public function parent() { return $this->belongsTo(self::class, 'parent'); } public function allParents() { return $this->parent()->with('allParents'); } public function allChildren() { return $this->children()->with('allChildren'); } /* Metodi statici */ public static function getHierarchy() { return self::with('allChildren') ->whereNull('parent') ->orderBy('order') ->get(); } public static function getCompleteHierarchy() { return self::withoutGlobalScope('enabled') ->with('allChildren') ->whereNull('parent') ->orderBy('order') ->get(); } }