From 09fc3ed59ba2bf06334b51a127125dc601ad31ec Mon Sep 17 00:00:00 2001 From: Boy132 Date: Sat, 8 Nov 2025 23:22:53 +0100 Subject: [PATCH] remove "is" methods from plugin model --- .../Commands/Plugin/InstallPluginCommand.php | 3 +- .../Plugin/UninstallPluginCommand.php | 3 +- .../Resources/Plugins/PluginResource.php | 11 ++++--- app/Models/Plugin.php | 31 ++----------------- app/Services/Helpers/PluginService.php | 10 +++--- 5 files changed, 18 insertions(+), 40 deletions(-) diff --git a/app/Console/Commands/Plugin/InstallPluginCommand.php b/app/Console/Commands/Plugin/InstallPluginCommand.php index 78e67d57c..1c34a6a9e 100644 --- a/app/Console/Commands/Plugin/InstallPluginCommand.php +++ b/app/Console/Commands/Plugin/InstallPluginCommand.php @@ -2,6 +2,7 @@ namespace App\Console\Commands\Plugin; +use App\Enums\PluginStatus; use App\Facades\Plugins; use App\Models\Plugin; use Illuminate\Console\Command; @@ -24,7 +25,7 @@ class InstallPluginCommand extends Command return; } - if ($plugin->isInstalled()) { + if ($plugin->status !== PluginStatus::NotInstalled) { $this->error('Plugin is already installed!'); return; diff --git a/app/Console/Commands/Plugin/UninstallPluginCommand.php b/app/Console/Commands/Plugin/UninstallPluginCommand.php index af4460fdc..ac27807fc 100644 --- a/app/Console/Commands/Plugin/UninstallPluginCommand.php +++ b/app/Console/Commands/Plugin/UninstallPluginCommand.php @@ -2,6 +2,7 @@ namespace App\Console\Commands\Plugin; +use App\Enums\PluginStatus; use App\Facades\Plugins; use App\Models\Plugin; use Illuminate\Console\Command; @@ -24,7 +25,7 @@ class UninstallPluginCommand extends Command return; } - if (!$plugin->isInstalled()) { + if ($plugin->status === PluginStatus::NotInstalled) { $this->error('Plugin is not installed!'); return; diff --git a/app/Filament/Admin/Resources/Plugins/PluginResource.php b/app/Filament/Admin/Resources/Plugins/PluginResource.php index ee5b12d26..3a46c6ab4 100644 --- a/app/Filament/Admin/Resources/Plugins/PluginResource.php +++ b/app/Filament/Admin/Resources/Plugins/PluginResource.php @@ -2,6 +2,7 @@ namespace App\Filament\Admin\Resources\Plugins; +use App\Enums\PluginStatus; use App\Facades\Plugins; use App\Filament\Admin\Resources\Plugins\Pages\ListPlugins; use App\Models\Plugin; @@ -106,7 +107,7 @@ class PluginResource extends Resource ->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin)) ->icon('tabler-settings') ->color('primary') - ->visible(fn (Plugin $plugin) => $plugin->isEnabled() && $plugin->hasSettings()) + ->visible(fn (Plugin $plugin) => $plugin->status === PluginStatus::Enabled && $plugin->hasSettings()) ->schema(fn (Plugin $plugin) => $plugin->getSettingsForm()) ->action(fn (array $data, Plugin $plugin) => $plugin->saveSettings($data)) ->slideOver(), @@ -116,7 +117,7 @@ class PluginResource extends Resource ->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin)) ->icon('tabler-terminal') ->color('success') - ->hidden(fn (Plugin $plugin) => $plugin->isInstalled()) + ->hidden(fn (Plugin $plugin) => $plugin->status !== PluginStatus::NotInstalled) ->action(function (Plugin $plugin, $livewire) { Plugins::installPlugin($plugin, !$plugin->isTheme() || !Plugins::hasThemePluginEnabled()); @@ -132,7 +133,7 @@ class PluginResource extends Resource ->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin)) ->icon('tabler-download') ->color('success') - ->visible(fn (Plugin $plugin) => $plugin->isInstalled() && $plugin->isUpdateAvailable()) + ->visible(fn (Plugin $plugin) => $plugin->status !== PluginStatus::NotInstalled && $plugin->isUpdateAvailable()) ->action(function (Plugin $plugin, $livewire) { Plugins::updatePlugin($plugin); @@ -184,7 +185,7 @@ class PluginResource extends Resource ->icon('tabler-trash') ->color('danger') ->requiresConfirmation() - ->hidden(fn (Plugin $plugin) => $plugin->isInstalled()) + ->visible(fn (Plugin $plugin) => $plugin->status === PluginStatus::NotInstalled) ->action(function (Plugin $plugin, $livewire) { Plugins::deletePlugin($plugin); @@ -201,7 +202,7 @@ class PluginResource extends Resource ->icon('tabler-terminal') ->color('danger') ->requiresConfirmation() - ->visible(fn (Plugin $plugin) => $plugin->isInstalled()) + ->hidden(fn (Plugin $plugin) => $plugin->status === PluginStatus::NotInstalled) ->action(function (Plugin $plugin, $livewire) { Plugins::uninstallPlugin($plugin); diff --git a/app/Models/Plugin.php b/app/Models/Plugin.php index 2cc239969..075278eeb 100644 --- a/app/Models/Plugin.php +++ b/app/Models/Plugin.php @@ -192,42 +192,17 @@ class Plugin extends Model implements HasPluginSettings public function shouldLoad(?string $panelId = null): bool { - return !$this->isDisabled() && $this->isInstalled() && !$this->isIncompatible() && (is_null($panelId) || !$this->panels || in_array($panelId, explode(',', $this->panels))); + return ($this->status === PluginStatus::Enabled || $this->status === PluginStatus::Errored) && (is_null($panelId) || !$this->panels || in_array($panelId, explode(',', $this->panels))); } public function canEnable(): bool { - return $this->isDisabled() && $this->isInstalled() && $this->isCompatible(); + return $this->status === PluginStatus::Disabled && $this->isCompatible(); } public function canDisable(): bool { - return $this->isEnabled() && $this->isInstalled() && $this->isCompatible(); - } - - public function isEnabled(): bool - { - return $this->status === PluginStatus::Enabled; - } - - public function isDisabled(): bool - { - return $this->status === PluginStatus::Disabled; - } - - public function isInstalled(): bool - { - return $this->status !== PluginStatus::NotInstalled; - } - - public function hasErrored(): bool - { - return $this->status === PluginStatus::Errored; - } - - public function isIncompatible(): bool - { - return $this->status === PluginStatus::Incompatible; + return $this->status !== PluginStatus::Disabled && $this->status !== PluginStatus::NotInstalled && $this->isCompatible(); } public function isCompatible(): bool diff --git a/app/Services/Helpers/PluginService.php b/app/Services/Helpers/PluginService.php index 29aab2dd3..65dfca945 100644 --- a/app/Services/Helpers/PluginService.php +++ b/app/Services/Helpers/PluginService.php @@ -44,7 +44,7 @@ class PluginService continue; } else { // Make sure to update the status if a plugin is no longer incompatible (e.g. because the user changed their panel version) - if ($plugin->isIncompatible()) { + if ($plugin->status === PluginStatus::Incompatible) { $this->disablePlugin($plugin); } } @@ -141,7 +141,7 @@ class PluginService $panel->plugin(new $pluginClass()); - if ($plugin->hasErrored()) { + if ($plugin->status === PluginStatus::Errored) { $this->enablePlugin($plugin); } } catch (Exception $exception) { @@ -243,7 +243,7 @@ class PluginService if ($enable) { $this->enablePlugin($plugin); } else { - if (!$plugin->isInstalled()) { + if ($plugin->status === PluginStatus::NotInstalled) { $this->disablePlugin($plugin); } } @@ -393,7 +393,7 @@ class PluginService { $plugins = Plugin::query()->orderBy('load_order')->get(); foreach ($plugins as $plugin) { - if ($plugin->isTheme() && $plugin->isEnabled()) { + if ($plugin->isTheme() && $plugin->status === PluginStatus::Enabled) { return true; } } @@ -408,7 +408,7 @@ class PluginService $plugins = Plugin::query()->orderBy('load_order')->get(); foreach ($plugins as $plugin) { - if (!$plugin->isEnabled() || !$plugin->isLanguage()) { + if ($plugin->status !== PluginStatus::Enabled || !$plugin->isLanguage()) { continue; }