migrate(); exit($rc ? 0 : 1); } 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('username', $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('username', $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->username = $username; $user->pass = $pass_hash; $user->save(); } }