diff --git a/src/db/auth.cpp b/src/db/auth.cpp index c62641b..4c235a5 100644 --- a/src/db/auth.cpp +++ b/src/db/auth.cpp @@ -70,8 +70,8 @@ extern "C" { if (filter(user_id)) return 0; - auto status = - user_db->Put(leveldb::WriteOptions{}, mangle_user_id(user_id), generate_hash(password, iter_round)); + auto hash = generate_hash(password, iter_round); + auto status = user_db->Put(leveldb::WriteOptions{}, mangle_user_id(user_id), hash); if (!status.ok()) { std::println(stderr, "Failed to set user password: {}", status.ToString()); return 0; @@ -99,7 +99,7 @@ extern "C" auto batch = leveldb::WriteBatch{}; batch.Put(mangle_user_id(user_id), generate_hash(password, iter_round)); - batch.Put(mangle_permission(user_id), "1"); + batch.Put(mangle_permission(user_id), "2"); auto status = user_db->Write(leveldb::WriteOptions{}, &batch); if (!status.ok()) { std::println(stderr, "Failed to register: {}", status.ToString()); @@ -150,11 +150,12 @@ extern "C" return 1; } - int set_admin_password_hash(const char* hash) + int set_admin_password(const char* password) { + auto hash = generate_hash(password, iter_round); auto status = user_db->Put(leveldb::WriteOptions{}, "admin_password_hash", hash); if (!status.ok()) { - std::println(stderr, "Failed to set admin password hash: {}", status.ToString()); + std::println(stderr, "Failed to set admin password: {}", status.ToString()); return 0; } return 1; @@ -165,14 +166,14 @@ extern "C" auto value = std::string{}; auto status = user_db->Get(leveldb::ReadOptions{}, "admin_password_hash", &value); if (!status.ok()) { - std::println(stderr, "Failed to login: {}", status.ToString()); + std::println(stderr, "Failed to login admin: {}", status.ToString()); return 0; } *result = validate_password(password, value.data()); return 1; } - int has_admin_password_hash(int* result) + int has_admin_password(int* result) { auto value = std::string{}; auto status = user_db->Get(leveldb::ReadOptions{}, "admin_password_hash", &value); @@ -181,7 +182,7 @@ extern "C" } else if (status.IsNotFound()) { *result = 0; } else { - std::println(stderr, "Failed to check admin password hash existence: {}", status.ToString()); + std::println(stderr, "Failed to check admin password existence: {}", status.ToString()); return 0; } return 1; diff --git a/ui/src/components/users/UserPanel.vue b/ui/src/components/users/UserPanel.vue index 404f1f0..27c6832 100644 --- a/ui/src/components/users/UserPanel.vue +++ b/ui/src/components/users/UserPanel.vue @@ -1,7 +1,14 @@