Widget and Report check is module disabled
This commit is contained in:
parent
2e79a9b5fa
commit
0f5f592c71
@ -53,6 +53,22 @@ class Widget extends Model
|
|||||||
return $this->hasManyThrough('App\Models\Auth\User', 'App\Models\Common\Dashboard');
|
return $this->hasManyThrough('App\Models\Auth\User', 'App\Models\Common\Dashboard');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the alias based on class.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getAliasAttribute()
|
||||||
|
{
|
||||||
|
if (Str::startsWith($this->class, 'App\\')) {
|
||||||
|
return 'core';
|
||||||
|
}
|
||||||
|
|
||||||
|
$arr = explode('\\', $this->class);
|
||||||
|
|
||||||
|
return Str::kebab($arr[1]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new factory instance for the model.
|
* Create a new factory instance for the model.
|
||||||
*
|
*
|
||||||
|
@ -439,6 +439,10 @@ trait Modules
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (module($alias)->disabled()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (! Module::alias($alias)->enabled()->first()) {
|
if (! Module::alias($alias)->enabled()->first()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,13 @@ namespace App\Utilities;
|
|||||||
|
|
||||||
use App\Models\Common\Report;
|
use App\Models\Common\Report;
|
||||||
use App\Models\Module\Module;
|
use App\Models\Module\Module;
|
||||||
|
use App\Traits\Modules;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class Reports
|
class Reports
|
||||||
{
|
{
|
||||||
|
use Modules;
|
||||||
|
|
||||||
public static function getClasses($check_permission = true)
|
public static function getClasses($check_permission = true)
|
||||||
{
|
{
|
||||||
$classes = [];
|
$classes = [];
|
||||||
@ -35,6 +38,12 @@ class Reports
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$alias = static::getModuleAlias($class);
|
||||||
|
|
||||||
|
if (! empty($alias) && (new Reports)->moduleIsDisabled($alias)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$classes[$class] = static::getDefaultName($class);
|
$classes[$class] = static::getDefaultName($class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,6 +60,10 @@ class Reports
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($model->alias != 'core' && (new Reports)->moduleIsDisabled($model->alias)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$class = $model->class;
|
$class = $model->class;
|
||||||
|
|
||||||
return new $class($model, $load_data);
|
return new $class($model, $load_data);
|
||||||
|
@ -4,10 +4,13 @@ namespace App\Utilities;
|
|||||||
|
|
||||||
use App\Models\Common\Widget;
|
use App\Models\Common\Widget;
|
||||||
use App\Models\Module\Module;
|
use App\Models\Module\Module;
|
||||||
|
use App\Traits\Modules;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class Widgets
|
class Widgets
|
||||||
{
|
{
|
||||||
|
use Modules;
|
||||||
|
|
||||||
public static $core_widgets = [
|
public static $core_widgets = [
|
||||||
'App\Widgets\Receivables',
|
'App\Widgets\Receivables',
|
||||||
'App\Widgets\Payables',
|
'App\Widgets\Payables',
|
||||||
@ -27,13 +30,13 @@ class Widgets
|
|||||||
}
|
}
|
||||||
|
|
||||||
Module::enabled()->each(function ($module) use (&$list, $alias) {
|
Module::enabled()->each(function ($module) use (&$list, $alias) {
|
||||||
if (!in_array($alias, [$module->alias, 'all'])) {
|
if (! in_array($alias, [$module->alias, 'all'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$m = module($module->alias);
|
$m = module($module->alias);
|
||||||
|
|
||||||
if (!$m || empty($m->get('widgets'))) {
|
if (! $m || empty($m->get('widgets'))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +44,13 @@ class Widgets
|
|||||||
});
|
});
|
||||||
|
|
||||||
foreach ($list as $class) {
|
foreach ($list as $class) {
|
||||||
if (!class_exists($class) || ($check_permission && !static::canRead($class))) {
|
if (! class_exists($class) || ($check_permission && ! static::canRead($class))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$alias = static::getModuleAlias($class);
|
||||||
|
|
||||||
|
if (! empty($alias) && (new Widgets)->moduleIsDisabled($alias)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,7 +71,11 @@ class Widgets
|
|||||||
|
|
||||||
$model = Widget::where('dashboard_id', session('dashboard_id'))->where('class', $class_name)->first();
|
$model = Widget::where('dashboard_id', session('dashboard_id'))->where('class', $class_name)->first();
|
||||||
|
|
||||||
if (!$model instanceof Widget) {
|
if ($model->alias != 'core' && (new Widgets)->moduleIsDisabled($model->alias)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $model instanceof Widget) {
|
||||||
$class = (new $class_name());
|
$class = (new $class_name());
|
||||||
|
|
||||||
$model = new Widget();
|
$model = new Widget();
|
||||||
@ -79,6 +92,10 @@ class Widgets
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($model->alias != 'core' && (new Widgets)->moduleIsDisabled($model->alias)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
$class_name = $model->class;
|
$class_name = $model->class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,7 +104,7 @@ class Widgets
|
|||||||
|
|
||||||
public static function show($model, ...$arguments)
|
public static function show($model, ...$arguments)
|
||||||
{
|
{
|
||||||
if (!$class = static::getClassInstance($model)) {
|
if (! $class = static::getClassInstance($model)) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user