Automatic fixes for validation failures (#13930)

* Automatic fixes for validations

* webui

* lint fixes

* Fix an install issue with ConfigSeeder requesting cli input in web page.

* Do not use c_echo in validate.php print_fail()
This commit is contained in:
Tony Murray
2022-06-10 16:25:33 -05:00
committed by GitHub
parent 46899d1643
commit 7a0d604cdd
39 changed files with 1374 additions and 845 deletions

View File

@@ -4,6 +4,8 @@ namespace App\Http\Controllers;
use Illuminate\Contracts\View\View;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use LibreNMS\Interfaces\ValidationFixer;
use LibreNMS\Validator;
class ValidateController extends Controller
@@ -20,4 +22,23 @@ class ValidateController extends Controller
return response()->json($validator->toArray());
}
public function runFixer(Request $request): JsonResponse
{
$this->validate($request, [
'fixer' => [
'starts_with:LibreNMS\Validations',
function ($attribute, $value, $fail) {
if (! class_exists($value) || ! in_array(ValidationFixer::class, class_implements($value))) {
$fail(trans('validation.results.invalid_fixer'));
}
},
],
]);
$fixer = $request->get('fixer');
return response()->json([
'result' => (new $fixer)->fix(),
]);
}
}