From c1f8002428cebc023546b377cdacbb3362627d28 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 11 Aug 2020 10:21:49 +0200 Subject: [PATCH] cmd/sojuctl: read user from DB before updating it This makes sure we don't overwrite other fields, such as Admin. Closes: https://todo.sr.ht/~emersion/soju/85 --- cmd/sojuctl/main.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/sojuctl/main.go b/cmd/sojuctl/main.go index 334cfa1..d5da3d9 100644 --- a/cmd/sojuctl/main.go +++ b/cmd/sojuctl/main.go @@ -94,12 +94,12 @@ func main() { log.Fatalf("failed to hash password: %v", err) } - user := soju.User{ - Created: true, - Username: username, - Password: string(hashed), + user, err := db.GetUser(username) + if err != nil { + log.Fatalf("failed to get user: %v", err) } - if err := db.StoreUser(&user); err != nil { + user.Password = string(hashed) + if err := db.StoreUser(user); err != nil { log.Fatalf("failed to update password: %v", err) } default: