fix: migrate display_name #14

Merged
Teajey merged 1 commits from post-core-sep-fixes into main 2025-06-27 03:27:41 +12:00
5 changed files with 42 additions and 51 deletions

View File

@ -2,5 +2,27 @@ BEGIN TRANSACTION;
ALTER TABLE gift RENAME TO wish; 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; COMMIT;

View File

@ -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": []
}

View File

@ -1,9 +1,6 @@
package api package api
import ( import (
"log"
lishwist "lishwist/core"
"lishwist/http/templates" "lishwist/http/templates"
) )
@ -43,30 +40,3 @@ func (p *LoginProps) Validate() (valid bool) {
return 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
}
}

19
http/comparepword/main.go Normal file
View File

@ -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!")
}

View File

@ -53,7 +53,7 @@ func LoginPost(h http.Header, r *rsvp.Request) rsvp.Response {
case lishwist.ErrorInvalidCredentials: case lishwist.ErrorInvalidCredentials:
props.GeneralError = "Username or password invalid" props.GeneralError = "Username or password invalid"
session.FlashSet(&props) 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: default:
props.GeneralError = "Something went wrong." props.GeneralError = "Something went wrong."
session.FlashSet(&props) session.FlashSet(&props)