Files
librenms-librenms/app/Console/Commands/PluginDisable.php
Tony Murray 7b868982d5 New lnms command to enable and disable plugins (#14147)
* New lnms command to enable and disable plugins
lnms plugin:disable
lnms plugin:enable

* cleanup

* appease the lint gods

* and style

* Restore accidental file removal
2022-07-29 11:36:49 -05:00

50 lines
1.2 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Console\Commands\Traits\CompletesPluginArgument;
use App\Console\LnmsCommand;
use App\Models\Plugin;
use Symfony\Component\Console\Input\InputArgument;
class PluginDisable extends LnmsCommand
{
use CompletesPluginArgument;
protected $name = 'plugin:disable';
public function __construct()
{
parent::__construct();
$this->addArgument('plugin', InputArgument::REQUIRED);
}
public function handle(): int
{
try {
$plugin = $this->argument('plugin');
$query = Plugin::query();
if ($plugin !== 'all') {
$query->where('plugin_name', 'like', $plugin);
}
$updated = $query->update(['plugin_active' => 0]);
if ($updated == 0 && $query->exists()) {
$this->info(trans('commands.plugin:enable.already_enabled'));
return 0;
}
$this->info(trans_choice('commands.plugin:disable.disabled', $updated, ['name' => $updated]));
return 0;
} catch (\Exception $e) {
$this->error(trans('commands.plugin:disable.failed'));
return 1;
}
}
}