From efa60f1b95add43fa236cb6c0952e3e1cb0a27ce Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Tue, 4 Aug 2020 15:03:39 +0200 Subject: [PATCH] FEAT #13671 TIME 0:30 Check if docservers already exist --- src/app/user/controllers/UserController.php | 2 +- src/core/controllers/InstallerController.php | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index cefb7bf4160..7ea9cb76554 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -1713,7 +1713,7 @@ class UserController continue; } - $existingUser = UserModel::getByLogin(['login' => strtolower($user['user_id']), 'select' => ['id', 'status', 'mail']]); + $existingUser = UserModel::getByLogin(['login' => strtolower($user['user_id']), 'select' => ['id', 'status']]); if (!empty($existingUser) && $existingUser['status'] != 'DEL') { $errors[] = ['error' => "User already exists with login {$user['user_id']}", 'index' => $key, 'lang' => '']; continue; diff --git a/src/core/controllers/InstallerController.php b/src/core/controllers/InstallerController.php index f2b8d520275..05cf41ced55 100644 --- a/src/core/controllers/InstallerController.php +++ b/src/core/controllers/InstallerController.php @@ -410,13 +410,21 @@ class InstallerController ]; foreach ($docservers as $docserver) { - if (!@mkdir("{$body['path']}/{$body['customId']}/{$docserver}", 0755, true)) { + if (is_dir("{$body['path']}/{$body['customId']}/{$docserver}")) { + if (!is_readable("{$body['path']}/{$body['customId']}/{$docserver}") || !is_writable("{$body['path']}/{$body['customId']}/{$docserver}")) { + return $response->withStatus(400)->withJson(['errors' => "Docserver {$body['path']}/{$body['customId']}/{$docserver} is not readable or writable"]); + } + } elseif (!@mkdir("{$body['path']}/{$body['customId']}/{$docserver}", 0755, true)) { return $response->withStatus(400)->withJson(['errors' => "Docserver folder creation failed for path : {$body['path']}/{$body['customId']}/{$docserver}"]); } } $templatesPath = "{$body['path']}/{$body['customId']}/templates/0000"; - if (!@mkdir($templatesPath, 0755, true)) { + if (is_dir($templatesPath)) { + if (!is_readable($templatesPath) || !is_writable($templatesPath)) { + return $response->withStatus(400)->withJson(['errors' => "Docserver {$templatesPath} is not readable or writable"]); + } + } elseif (!@mkdir($templatesPath, 0755, true)) { return $response->withJson(['success' => "Docservers created but templates folder creation failed"]); } -- GitLab