From d000ec491a6232fcb91e9855a2634a77c73a51f7 Mon Sep 17 00:00:00 2001 From: contact Date: Tue, 11 Aug 2020 08:21:49 +0000 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 git-svn-id: file:///srv/svn/repo/suika/trunk@380 f0ae65fe-ee39-954e-97ec-027ff2717ef4 --- 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: