mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
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:
@@ -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(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user