From df7c66f91cb3d033d35a4b8732d879ec605cfb84 Mon Sep 17 00:00:00 2001 From: osaajani <> Date: Thu, 22 Oct 2020 20:31:01 +0200 Subject: [PATCH] Add tools for command line manipulation of users --- controllers/internals/Console.php | 43 ++++++++++++++++++++++++++----- models/User.php | 5 ++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/controllers/internals/Console.php b/controllers/internals/Console.php index 30033a8..dcb16d3 100644 --- a/controllers/internals/Console.php +++ b/controllers/internals/Console.php @@ -67,6 +67,21 @@ namespace controllers\internals; new \daemons\Phone($phone); } + /** + * Check if a user exists based on email + * + * @param string $email : User email + * @return exit code 1 on false, 0 else + */ + public function user_exists(string $email) + { + $bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD, 'UTF8'); + $internal_user = new \controllers\internals\User($bdd); + + $user = $internal_user->get_by_email($email); + exit($user ? 0 : 1); + } + /** * Create a user or update an existing user. * @@ -89,26 +104,27 @@ namespace controllers\internals; { $api_key = $api_key ?? $internal_user->generate_random_api_key(); $success = $internal_user->update($user['id'], $email, $password, $admin, $api_key, $status, $encrypt_password); - + echo json_encode(['id' => $user['id']]); exit($success ? 0 : 1); } - $success = $internal_user->create($email, $password, $admin, $api_key, $status, $encrypt_password); - exit($success ? 0 : 1); + $new_user_id = $internal_user->create($email, $password, $admin, $api_key, $status, $encrypt_password); + echo json_encode(['id' => $new_user_id]); + exit($new_user_id ? 0 : 1); } /** * Update a user status. * - * @param string $email : User email + * @param string $id : User id * @param string $status : User status, default \models\User::STATUS_ACTIVE */ - public function update_user_status(string $email, string $status) + public function update_user_status(string $id, string $status) { $bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD, 'UTF8'); $internal_user = new \controllers\internals\User($bdd); - $user = $internal_user->get_by_email($email); + $user = $internal_user->get($id); if (!$user) { exit(1); @@ -117,4 +133,19 @@ namespace controllers\internals; $success = $internal_user->update_status($user['id'], $status); exit($success ? 0 : 1); } + + + /** + * Delete a user + * + * @param string $id : User id + */ + public function delete_user(string $id) + { + $bdd = \descartes\Model::_connect(DATABASE_HOST, DATABASE_NAME, DATABASE_USER, DATABASE_PASSWORD, 'UTF8'); + $internal_user = new \controllers\internals\User($bdd); + + $success = $internal_user->delete($id); + exit($success ? 0 : 1); + } } diff --git a/models/User.php b/models/User.php index eaca1ca..ff3c659 100644 --- a/models/User.php +++ b/models/User.php @@ -67,10 +67,9 @@ namespace models; } /** - * Retourne une liste de useres sous forme d'un tableau. + * Delete a user * - * @param array $ids : un ou plusieurs id d'entrées à supprimer - * @param mixed $id + * @param int $id : Id de l'utilisateur a supprimer * * @return int : Le nombre de lignes supprimées */