. * * @package LibreNMS * @link http://librenms.org * @copyright 2021 Tony Murray * @author Tony Murray */ namespace App\Plugins\Hooks; use App\Models\User; use Illuminate\Support\Str; abstract class SettingsHook { /** @var string */ public $view = 'resources.views.settings'; public function authorize(User $user, array $settings): bool { return true; } public function data(array $settings): array { return [ 'settings' => $settings, ]; } final public function handle(string $pluginName, array $settings): array { return array_merge([ 'settings_view' => Str::start($this->view, "$pluginName::"), ], $this->data($settings)); } }