little more error checking for new usernames

This commit is contained in:
Ted Unangst 2020-11-25 21:50:51 -05:00
parent 2a6de8f7bc
commit 4bec62f23c
1 changed files with 14 additions and 5 deletions

19
util.go
View File

@ -44,6 +44,7 @@ import (
"net" "net"
"os" "os"
"os/signal" "os/signal"
"regexp"
"strings" "strings"
"golang.org/x/crypto/bcrypt" "golang.org/x/crypto/bcrypt"
@ -107,12 +108,16 @@ func initdb() {
} }
r := bufio.NewReader(os.Stdin) r := bufio.NewReader(os.Stdin)
err = createuser(db, r) initblobdb()
prepareStatements(db)
err = createserveruser(db)
if err != nil { if err != nil {
log.Print(err) log.Print(err)
return return
} }
err = createserveruser(db) err = createuser(db, r)
if err != nil { if err != nil {
log.Print(err) log.Print(err)
return return
@ -153,9 +158,6 @@ func initdb() {
setconfig("loginmsg", "<h2>login</h2>") setconfig("loginmsg", "<h2>login</h2>")
setconfig("debug", 0) setconfig("debug", 0)
initblobdb()
prepareStatements(db)
db.Close() db.Close()
fmt.Printf("done.\n") fmt.Printf("done.\n")
os.Exit(0) os.Exit(0)
@ -307,6 +309,13 @@ func createuser(db *sql.DB, r *bufio.Reader) error {
if len(name) < 1 { if len(name) < 1 {
return fmt.Errorf("that's way too short") return fmt.Errorf("that's way too short")
} }
re_name := regexp.MustCompile("^[[:alnum:]]+$")
if !re_name.MatchString(name) {
return fmt.Errorf("alphanumeric only please")
}
if _, err := butwhatabout(name); err == nil {
return fmt.Errorf("user already exists")
}
pass, err := askpassword(r) pass, err := askpassword(r)
if err != nil { if err != nil {
return err return err