From 75425a18947a069648f83c92cc2995bbecd2ae2d Mon Sep 17 00:00:00 2001 From: Teajey <21069848+Teajey@users.noreply.github.com> Date: Fri, 27 Jun 2025 00:09:01 +0900 Subject: [PATCH] fix: migrate display_name --- core/internal/db/migration/2.sql | 22 ++++++++++++++++++++++ core/sesh | 20 -------------------- http/api/login.go | 30 ------------------------------ http/comparepword/main.go | 19 +++++++++++++++++++ http/routing/login.go | 2 +- 5 files changed, 42 insertions(+), 51 deletions(-) delete mode 100644 core/sesh create mode 100644 http/comparepword/main.go diff --git a/core/internal/db/migration/2.sql b/core/internal/db/migration/2.sql index 78168a6..c5a5c2e 100644 --- a/core/internal/db/migration/2.sql +++ b/core/internal/db/migration/2.sql @@ -2,5 +2,27 @@ BEGIN TRANSACTION; ALTER TABLE gift RENAME TO wish; +ALTER TABLE user ADD COLUMN display_name TEXT NOT NULL DEFAULT ""; + +UPDATE user SET display_name = name; + +ALTER TABLE user RENAME TO old_user; + +CREATE TABLE "user" ( + "id" INTEGER NOT NULL UNIQUE, + "name" TEXT NOT NULL UNIQUE, + "display_name" TEXT NOT NULL UNIQUE, + "reference" TEXT NOT NULL UNIQUE, + "motto" TEXT NOT NULL DEFAULT "", + "password_hash" TEXT NOT NULL, + "is_admin" INTEGER NOT NULL DEFAULT 0, + "is_live" INTEGER NOT NULL DEFAULT 1, + PRIMARY KEY("id" AUTOINCREMENT) +); + +INSERT INTO user (id, name, display_name, reference, motto, password_hash, is_admin, is_live) SELECT id, name, name, reference, motto, password_hash, is_admin, is_live FROM old_user; + +DROP TABLE "old_user"; + COMMIT; diff --git a/core/sesh b/core/sesh deleted file mode 100644 index 392f621..0000000 --- a/core/sesh +++ /dev/null @@ -1,20 +0,0 @@ -{ - "__meta__": { - "about": "xh session file", - "xh": "0.24.1" - }, - "auth": { - "type": null, - "raw_auth": null - }, - "cookies": [ - { - "name": "lishwist_user", - "value": "MTc1MDg2NDE2N3xCQXdBQVRjPXw8gaasdVy--TC-_fUb-3ZL58n8UVakTqDm_0_7c50cYA==", - "expires": 1750950567, - "path": "/lists", - "domain": "127.0.0.1" - } - ], - "headers": [] -} diff --git a/http/api/login.go b/http/api/login.go index 9a8b24c..cdf865a 100644 --- a/http/api/login.go +++ b/http/api/login.go @@ -1,9 +1,6 @@ package api import ( - "log" - - lishwist "lishwist/core" "lishwist/http/templates" ) @@ -43,30 +40,3 @@ func (p *LoginProps) Validate() (valid bool) { return } - -func Login(username, password string) *LoginProps { - props := NewLoginProps(username, password) - - valid := props.Validate() - props.Password.Value = "" - if !valid { - log.Printf("Invalid props: %#v\n", props) - return props - } - - _, err := lishwist.Login(props.Username.Value, props.Password.Value) - if err == nil { - return nil - } - - switch err.(type) { - case lishwist.ErrorInvalidCredentials: - log.Printf("Invalid credentials: %w\n", err) - props.GeneralError = "Username or password invalid" - return props - default: - log.Printf("Login error: %w\n", err) - props.GeneralError = "Something went wrong." - return props - } -} diff --git a/http/comparepword/main.go b/http/comparepword/main.go new file mode 100644 index 0000000..2b11478 --- /dev/null +++ b/http/comparepword/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "fmt" + "log" + "os" + + "golang.org/x/crypto/bcrypt" +) + +func main() { + passwordHash := []byte(os.Args[1]) + password := []byte(os.Args[2]) + err := bcrypt.CompareHashAndPassword(passwordHash, password) + if err != nil { + log.Fatalln("Failed to match: ", err) + } + fmt.Println("Match!") +} diff --git a/http/routing/login.go b/http/routing/login.go index b738b39..bb5cf65 100644 --- a/http/routing/login.go +++ b/http/routing/login.go @@ -53,7 +53,7 @@ func LoginPost(h http.Header, r *rsvp.Request) rsvp.Response { case lishwist.ErrorInvalidCredentials: props.GeneralError = "Username or password invalid" session.FlashSet(&props) - return rsvp.SeeOther("/").SaveSession(session).Log("Invalid credentials: %#v\n", props) + return rsvp.SeeOther("/").SaveSession(session).Log("Invalid credentials: %s: %#v\n", err, props) default: props.GeneralError = "Something went wrong." session.FlashSet(&props)