From c5f2d3044e3a3ae33a842f5f0b4e2c36fcd6f14b Mon Sep 17 00:00:00 2001 From: tracer Date: Sat, 29 Jan 2022 14:38:02 +0100 Subject: [PATCH] added database password generation Signed-off-by: tracer --- src/Controller/DatabaseConnection.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Controller/DatabaseConnection.php b/src/Controller/DatabaseConnection.php index 3fc8d81..691c83b 100644 --- a/src/Controller/DatabaseConnection.php +++ b/src/Controller/DatabaseConnection.php @@ -94,15 +94,26 @@ class DatabaseConnection echo $exception->getMessage() . PHP_EOL; echo 'Did you create the database and adjust the config file?' . PHP_EOL; echo PHP_EOL . 'You can create database an user via a panel or manually in mysql shell:' . PHP_EOL; - echo 'CREATE DATABASE databasename;' . PHP_EOL; - echo "CREATE USER 'user'@'localhost' IDENTIFIED BY 'secret';" . PHP_EOL; - echo "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON databasename.* TO 'user'@'localhost';" . PHP_EOL; + $password = $this->generatePassword(); + echo 'Created an initial password: ' . $password . PHP_EOL; + echo 'CREATE DATABASE bindAPI;' . PHP_EOL; + echo "CREATE USER 'bindAPI'@'localhost' IDENTIFIED BY '$password';" . PHP_EOL; + echo "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON bindAPI.* TO 'bindAPI'@'localhost';" . PHP_EOL; echo 'There is no need to run FLUSH PRIVILEGES when using GRANT!' . PHP_EOL; exit(1); } } + function generatePassword($length = 8) { + + $chars = '23456789bcdfhkmnprstvzBCDFHJKLMNPRSTVZ'; + $shuffled = str_shuffle($chars); + $result = mb_substr($shuffled, 0, $length); + + return $result; + } + /** * @return \PDO */