improved widget/report permissions
This commit is contained in:
@ -56,6 +56,11 @@ class Reports
|
||||
return new $class($model, $load_data);
|
||||
}
|
||||
|
||||
public static function canShow($class)
|
||||
{
|
||||
return (static::isModuleEnabled($class) && static::canRead($class));
|
||||
}
|
||||
|
||||
public static function canRead($class)
|
||||
{
|
||||
return user()->can(static::getPermission($class));
|
||||
@ -68,8 +73,8 @@ class Reports
|
||||
$prefix = 'read-';
|
||||
|
||||
// Add module
|
||||
if (strtolower($arr[0]) == 'modules') {
|
||||
$prefix .= Str::kebab($arr[1]) . '-';
|
||||
if ($alias = static::getModuleAlias($arr)) {
|
||||
$prefix .= $alias . '-';
|
||||
}
|
||||
|
||||
$prefix .= 'reports-';
|
||||
@ -85,4 +90,35 @@ class Reports
|
||||
{
|
||||
return (new $class())->getDefaultName();
|
||||
}
|
||||
|
||||
public static function isModuleEnabled($class)
|
||||
{
|
||||
if (!$alias = static::getModuleAlias($class)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Module::alias($alias)->enabled()->first()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function isModule($class)
|
||||
{
|
||||
$arr = is_array($class) ? $class : explode('\\', $class);
|
||||
|
||||
return (strtolower($arr[0]) == 'modules');
|
||||
}
|
||||
|
||||
public static function getModuleAlias($class)
|
||||
{
|
||||
if (!static::isModule($class)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$arr = is_array($class) ? $class : explode('\\', $class);
|
||||
|
||||
return Str::kebab($arr[1]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user