From 2b8b845abe7c13ecbb266613910484310cffe8e1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 5 Mar 2021 21:14:35 +0300 Subject: * use ORM for trivial queries * environment-based configuration * useradm.php -> update.php with new options * support for schema migrations * various fixes --- update.php | 121 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 update.php (limited to 'update.php') diff --git a/update.php b/update.php new file mode 100644 index 0000000..968e022 --- /dev/null +++ b/update.php @@ -0,0 +1,121 @@ +migrate(); + + } else { + Debug::log("Database schema is already at latest version."); + } + } + + if (isset($options["user-del"])) { + + $username = $options["user-del"]; + + $user = ORM::for_table('epube_users') + ->where('user', $username) + ->find_one(); + + if ($user) { + Debug::log("Deleting user: $username"); + $user->delete(); + } else { + Debug::log("User not found: $username"); + } + } + + if (isset($options["user-list"])) { + $users = ORM::for_table('epube_users') + ->find_many(); + + foreach ($users as $user) { + Debug::log("{$user->id}. {$user->user}"); + } + } + + if (isset($options["user-add"])) { + list ($username, $pass) = explode(":", $options["user-add"], 2); + + if (!$username) { + Debug::log("Not enough arguments"); + exit; + } + + if (empty($pass)) { + print "Enter password for user $username: "; + $pass = trim(read_stdin()); + } + + $username = mb_strtolower($username); + + $pass_hash = 'SHA256:' . hash('sha256', "$username:" . trim($pass)); + + $user = ORM::for_table('epube_users') + ->where('user', $username) + ->find_one(); + + if ($user) { + Debug::log("User $username already exists, updating password."); + $user->pass = $pass_hash; + $user->save(); + } else { + Debug::log("Adding user $username."); + $user = ORM::for_table('epube_users')->create(); + $user->user = $username; + $user->pass = $pass_hash; + $user->save(); + } + } -- cgit v1.2.3