- Timestamp:
- Apr 10, 2020, 8:09:02 AM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cmd/sojuctl/main.go
r98 r251 15 15 const usage = `usage: sojuctl [-config path] <action> [options...] 16 16 17 create-user <username> Create a new user 18 help Show this help message 17 create-user <username> Create a new user 18 change-password <username> Change password for a user 19 help Show this help message 19 20 ` 20 21 … … 73 74 log.Fatalf("failed to create user: %v", err) 74 75 } 76 case "change-password": 77 username := flag.Arg(1) 78 if username == "" { 79 flag.Usage() 80 os.Exit(1) 81 } 82 83 fmt.Printf("New password: ") 84 password, err := terminal.ReadPassword(int(os.Stdin.Fd())) 85 if err != nil { 86 log.Fatalf("failed to read new password: %v", err) 87 } 88 fmt.Printf("\n") 89 90 hashed, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) 91 if err != nil { 92 log.Fatalf("failed to hash password: %v", err) 93 } 94 95 user := soju.User{ 96 Username: username, 97 Password: string(hashed), 98 } 99 if err := db.UpdatePassword(&user); err != nil { 100 log.Fatalf("failed to update password: %v", err) 101 } 102 75 103 default: 76 104 flag.Usage() -
trunk/db.go
r207 r251 130 130 password := toStringPtr(user.Password) 131 131 _, err := db.db.Exec("INSERT INTO User(username, password) VALUES (?, ?)", user.Username, password) 132 return err 133 } 134 135 func (db *DB) UpdatePassword(user *User) error { 136 db.lock.Lock() 137 defer db.lock.Unlock() 138 139 password := toStringPtr(user.Password) 140 _, err := db.db.Exec(`UPDATE User 141 SET password = ? 142 WHERE username = ?`, 143 password, user.Username) 132 144 return err 133 145 }
Note:
See TracChangeset
for help on using the changeset viewer.