Add AddUser func
This commit is contained in:
parent
7395200314
commit
97f36a08c7
|
@ -3,7 +3,6 @@ package auth
|
|||
import (
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"tildegit.org/andinus/perseus/storage/sqlite3"
|
||||
"tildegit.org/andinus/perseus/user"
|
||||
|
@ -25,39 +24,6 @@ func Register(db *sqlite3.DB, regInfo map[string]string) error {
|
|||
}
|
||||
u.SetPassword(pass)
|
||||
|
||||
// Acquire write lock on the database.
|
||||
db.Mu.Lock()
|
||||
defer db.Mu.Unlock()
|
||||
|
||||
err = insertRegRecords(db, u)
|
||||
return err
|
||||
}
|
||||
|
||||
func insertRegRecords(db *sqlite3.DB, u user.User) error {
|
||||
// Start the transaction
|
||||
tx, err := db.Conn.Begin()
|
||||
if err != nil {
|
||||
log.Printf("auth/register.go: %s\n",
|
||||
"Failed to begin transaction")
|
||||
return err
|
||||
}
|
||||
|
||||
usrStmt, err := db.Conn.Prepare(`
|
||||
INSERT INTO users(id, username, password, regTime) values(?, ?, ?, ?)`)
|
||||
if err != nil {
|
||||
log.Printf("auth/register.go: %s\n",
|
||||
"Failed to prepare statement")
|
||||
return err
|
||||
}
|
||||
defer usrStmt.Close()
|
||||
|
||||
_, err = usrStmt.Exec(u.ID(), u.Username(), u.Password(), time.Now().UTC())
|
||||
if err != nil {
|
||||
log.Printf("auth/register.go: %s\n",
|
||||
"Failed to execute statement")
|
||||
return err
|
||||
}
|
||||
|
||||
tx.Commit()
|
||||
err = u.AddUser(db)
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
package user
|
||||
|
||||
import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"tildegit.org/andinus/perseus/storage/sqlite3"
|
||||
)
|
||||
|
||||
// AddUser adds the user to record.
|
||||
func (u *User) AddUser(db *sqlite3.DB) error {
|
||||
// Acquire write lock on the database.
|
||||
db.Mu.Lock()
|
||||
defer db.Mu.Unlock()
|
||||
|
||||
// Start the transaction
|
||||
tx, err := db.Conn.Begin()
|
||||
if err != nil {
|
||||
log.Printf("user/adduser.go: %s\n",
|
||||
"failed to begin transaction")
|
||||
return err
|
||||
}
|
||||
|
||||
usrStmt, err := db.Conn.Prepare(`
|
||||
INSERT INTO users(id, username, password, regTime) values(?, ?, ?, ?)`)
|
||||
if err != nil {
|
||||
log.Printf("user/adduser.go: %s\n",
|
||||
"failed to prepare statement")
|
||||
return err
|
||||
}
|
||||
defer usrStmt.Close()
|
||||
|
||||
_, err = usrStmt.Exec(u.id, u.username, u.password, time.Now().UTC())
|
||||
if err != nil {
|
||||
log.Printf("user/adduser.go: %s\n",
|
||||
"failed to execute statement")
|
||||
return err
|
||||
}
|
||||
|
||||
tx.Commit()
|
||||
return err
|
||||
}
|
Loading…
Reference in New Issue