harden reset system
This commit is contained in:
@@ -19,6 +19,7 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\Routing\Attribute\Route;
|
||||
use Symfony\Component\Uid\Uuid;
|
||||
use function function_exists;
|
||||
|
||||
#[Route('/admin/documents')]
|
||||
class DocumentController extends AbstractController
|
||||
@@ -60,7 +61,12 @@ class DocumentController extends AbstractController
|
||||
}
|
||||
|
||||
#[Route('/new', name: 'admin_document_new')]
|
||||
public function new(Request $request, DocumentService $documentService, FormatText $formatText): Response
|
||||
public function new(
|
||||
Request $request,
|
||||
DocumentService $documentService,
|
||||
FormatText $formatText,
|
||||
ParameterBagInterface $params
|
||||
): Response
|
||||
{
|
||||
if ($request->isMethod('POST')) {
|
||||
|
||||
@@ -74,7 +80,7 @@ class DocumentController extends AbstractController
|
||||
return $this->redirectToRoute('admin_document_new');
|
||||
}
|
||||
|
||||
$uploadDir = $this->getParameter('kernel.project_dir') . '/var/knowledge/uploads';
|
||||
$uploadDir = $params->get('mto.vector.data.upload.path');
|
||||
|
||||
if (!is_dir($uploadDir)) {
|
||||
mkdir($uploadDir, 0777, true);
|
||||
@@ -107,7 +113,8 @@ class DocumentController extends AbstractController
|
||||
string $id,
|
||||
Request $request,
|
||||
EntityManagerInterface $em,
|
||||
DocumentService $documentService
|
||||
DocumentService $documentService,
|
||||
ParameterBagInterface $params
|
||||
): Response
|
||||
{
|
||||
|
||||
@@ -126,7 +133,7 @@ class DocumentController extends AbstractController
|
||||
return $this->redirectToRoute('admin_document_version_new', ['id' => $id]);
|
||||
}
|
||||
|
||||
$uploadDir = $this->getParameter('kernel.project_dir') . '/var/knowledge/uploads';
|
||||
$uploadDir = $params->get('mto.vector.data.upload.path');
|
||||
|
||||
if (!is_dir($uploadDir)) {
|
||||
mkdir($uploadDir, 0777, true);
|
||||
@@ -250,7 +257,7 @@ class DocumentController extends AbstractController
|
||||
);
|
||||
|
||||
// Best effort: wenn exec deaktiviert ist, sauber abbrechen.
|
||||
if (!\function_exists('exec')) {
|
||||
if (!function_exists('exec')) {
|
||||
$jobService->markFailed($job, 'Server configuration does not allow background execution (exec disabled).');
|
||||
$this->addFlash('error', 'Ingest konnte nicht asynchron gestartet werden (exec deaktiviert).');
|
||||
return $this->redirectToRoute('admin_document_show', [
|
||||
@@ -272,9 +279,16 @@ class DocumentController extends AbstractController
|
||||
)]
|
||||
public function resetCompleteSystem(ParameterBagInterface $params, Connection $connection): ?RedirectResponse
|
||||
{
|
||||
@unlink($params->get('mto.vector.data.path') . '/index.ndjson');
|
||||
@unlink($params->get('mto.vector.data.path') . '/vector.index');
|
||||
@unlink($params->get('mto.vector.data.path') . '/vector.index.meta.json');
|
||||
if (!function_exists('exec')) {
|
||||
$this->addFlash('danger', 'Der Reset konnte nicht gestartet werden (exec deaktiviert).');
|
||||
return $this->redirectToRoute('admin_dashboard');
|
||||
}
|
||||
|
||||
@unlink($params->get('mto.vector.data.ndjson.path'));
|
||||
@unlink($params->get('mto.vector.data.vector_index.path'));
|
||||
@unlink($params->get('mto.vector.data.vector_index_meta_json.path'));
|
||||
exec('rm -rf ' . $params->get('mto.vector.data.upload.path'));
|
||||
|
||||
$sql = '
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
TRUNCATE TABLE db.document;
|
||||
@@ -287,6 +301,8 @@ class DocumentController extends AbstractController
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
';
|
||||
$connection->executeQuery($sql);
|
||||
|
||||
$this->addFlash('success', 'Das System wurde erfolgreich zurückgesetzt.');
|
||||
return $this->redirectToRoute('admin_dashboard');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user