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"
"os"
"os/signal"
"regexp"
"strings"
"golang.org/x/crypto/bcrypt"
@ -107,12 +108,16 @@ func initdb() {
}
r := bufio.NewReader(os.Stdin)
err = createuser(db, r)
initblobdb()
prepareStatements(db)
err = createserveruser(db)
if err != nil {
log.Print(err)
return
}
err = createserveruser(db)
err = createuser(db, r)
if err != nil {
log.Print(err)
return
@ -153,9 +158,6 @@ func initdb() {
setconfig("loginmsg", "<h2>login</h2>")
setconfig("debug", 0)
initblobdb()
prepareStatements(db)
db.Close()
fmt.Printf("done.\n")
os.Exit(0)
@ -307,6 +309,13 @@ func createuser(db *sql.DB, r *bufio.Reader) error {
if len(name) < 1 {
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)
if err != nil {
return err