Offer opt in to usage and error reporting during install (#13906)

and on the about page
This commit is contained in:
Tony Murray
2022-12-15 19:52:22 -06:00
committed by GitHub
parent 510f9d340d
commit 8ea3f5cd06
19 changed files with 336 additions and 192 deletions

View File

@@ -26,9 +26,12 @@
namespace App\Http\Controllers\Install;
use Exception;
use Illuminate\Http\Request;
use LibreNMS\Config;
use LibreNMS\Exceptions\FileWriteFailedException;
use LibreNMS\Interfaces\InstallerStep;
use LibreNMS\Util\EnvHelper;
use LibreNMS\Util\Git;
class FinalizeController extends InstallationController implements InstallerStep
{
@@ -40,6 +43,29 @@ class FinalizeController extends InstallationController implements InstallerStep
return $this->redirectToIncomplete();
}
return view('install.finish', $this->formatData([
'can_update' => Git::make()->isAvailable(),
'success' => '',
'env' => '',
'config' => '',
'messages' => '',
'env_message' => '',
'config_message' => '',
]));
}
public function saveConfig(Request $request): \Illuminate\Http\JsonResponse
{
$request->validate([
'update_channel' => 'in:master,release',
'site_style' => 'in:light,dark',
]);
$this->saveSetting('update_channel', $request->get('update_channel', 'master'));
$this->saveSetting('site_style', $request->get('site_style'));
$this->saveSetting('reporting.error', $request->has('error_reporting'));
$this->saveSetting('reporting.usage', $request->has('usage_reporting'));
$env = '';
$config = '';
$config_file = base_path('config.php');
@@ -65,14 +91,14 @@ class FinalizeController extends InstallationController implements InstallerStep
$env_message = trans('install.finish.env_not_written');
}
return view('install.finish', $this->formatData([
return response()->json([
'success' => $success,
'env' => $env,
'config' => $config,
'messages' => $messages,
'env_message' => $env_message,
'config_message' => $config_message,
]));
]);
}
private function writeEnvFile()
@@ -138,6 +164,18 @@ class FinalizeController extends InstallationController implements InstallerStep
);
}
/**
* @param string $name
* @param mixed $value
* @return void
*/
private function saveSetting(string $name, $value): void
{
if (Config::get($name) !== $value) {
Config::persist($name, $value);
}
}
public function enabled(): bool
{
foreach ($this->hydrateControllers() as $step => $controller) {