diff --git a/example/example.go b/example/example.go index df31a82..9997b65 100644 --- a/example/example.go +++ b/example/example.go @@ -40,8 +40,8 @@ func main() { scsusers.Init(db, "test", "Example Test", "nobody@nowhere.com", "localhost:25", true) a:=scsusers.UsernameAvailable("testuser") fmt.Printf("Initial test of username available: %v\n", a) - a=scsusers.Register("testuser", email, "127.0.0.1") - fmt.Printf("Register returned %v\n",a) + err=scsusers.Register("testuser", email, "127.0.0.1") + fmt.Printf("Register returned %v\n",err) fmt.Printf("Attempt to log in with invalid username returned %v\n", scsusers.Login("baduser", "badpass")) fmt.Printf("Enter code from email:") var code string diff --git a/main.go b/main.go index d94dae5..ce4838b 100644 --- a/main.go +++ b/main.go @@ -79,9 +79,9 @@ func UsernameAvailable(username string) bool { /* Check for username availability, add to database, send email */ -func Register(username, email, ip string) bool { +func Register(username, email, ip string) error { if !UsernameAvailable(username) { - return false + return fmt.Errorf("Username %s is not available", username) } username = strings.ToLower(username) @@ -89,17 +89,17 @@ func Register(username, email, ip string) bool { crypt, err := bcrypt.GenerateFromPassword(pass, 10) if err != nil { log.Printf("scsusers.Register: Bcrypt GenerateFromPassword failed? Pass is %s and error is %s\n", pass, err.Error()) - return false + return fmt.Errorf("Failed to generate password") } _, err = c.db.Query(fmt.Sprintf("insert into %s_users (username, password) VALUES (?,?)", c.TablePrefix), username, crypt) if err != nil { log.Printf("scsusers.Register: insert failed: %s\n", err.Error()) - return false + return fmt.Errorf("Failed to insert user") } if SendRegistrationEmail(email, username, string(pass)) { log.Printf("scsusers.Register: New user registration: %s from %s\n", username, ip) - return true + return nil } log.Printf("scsusers.Register: Failed to send registration email, deleting user %s\n", username) q := fmt.Sprintf("delete from %s_users where username = ? AND password=?", c.TablePrefix) @@ -107,7 +107,7 @@ func Register(username, email, ip string) bool { if err != nil { log.Printf("scsusers.Register: Failed to delete new user %s: %s\n", username, err.Error()) } - return false + return fmt.Errorf("Failed to send registration email") } func NewUser() *UserData { diff --git a/main_test.go b/main_test.go index 93a313b..e423504 100644 --- a/main_test.go +++ b/main_test.go @@ -40,8 +40,8 @@ func TestUsers(t *testing.T) { Init(db, "test", "Example Test", "nobody@nowhere.com", "localhost:25", true) a := UsernameAvailable("testuser") fmt.Printf("Initial test of username available: %v\n", a) - a = Register("testuser", email, "127.0.0.1") - fmt.Printf("Register returned %v\n", a) + err = Register("testuser", email, "127.0.0.1") + fmt.Printf("Register returned %v\n", err) fmt.Printf("Attempt to log in with invalid username returned %v\n", Login("baduser", "badpass")) fmt.Printf("Enter code from email:") var code string