diff --git a/ProcessMaker/Traits/HideSystemResources.php b/ProcessMaker/Traits/HideSystemResources.php index 8e86a44711..a5996aabef 100644 --- a/ProcessMaker/Traits/HideSystemResources.php +++ b/ProcessMaker/Traits/HideSystemResources.php @@ -11,7 +11,11 @@ use ProcessMaker\Models\ProcessTemplates; use ProcessMaker\Models\Screen; use ProcessMaker\Models\ScreenCategory; +use ProcessMaker\Models\Script; +use ProcessMaker\Models\ScriptCategory; use ProcessMaker\Models\User; +use ProcessMaker\Packages\Connectors\DataSources\Models\DataSource; +use ProcessMaker\Packages\Connectors\DataSources\Models\DataSourceCategory; trait HideSystemResources { @@ -70,6 +74,22 @@ public function scopeNonSystem($query) ->when(Schema::hasColumn('screens', 'asset_type'), function ($query) { return $query->whereNull('asset_type'); }); + } elseif (static::class === Script::class) { + $systemCategory = ScriptCategory::where('is_system', true)->pluck('id'); + + return $query->whereNotIn('script_category_id', $systemCategory) + ->where('is_template', false) + ->when(Schema::hasColumn('scripts', 'asset_type'), function ($query) { + return $query->whereNull('asset_type'); + }); + } elseif (static::class === DataSource::class) { + $systemCategory = DataSourceCategory::where('is_system', true)->pluck('id'); + + return $query->whereNotIn('data_source_category_id', $systemCategory) + ->where('is_template', false) + ->when(Schema::hasColumn('data_sources', 'asset_type'), function ($query) { + return $query->whereNull('asset_type'); + }); } elseif (static::class == ProcessRequest::class) { // ProcessRequests must be filtered this way since // they could be in a separate database