forked from jason/cpolis
Implemented proper User struct
This commit is contained in:
@ -34,7 +34,7 @@ func OpenDB(dbName string) (*DB, error) {
|
||||
return &db, nil
|
||||
}
|
||||
|
||||
func (db *DB) AddUser(user, pass, first, last string, writer, editor, admin bool) error {
|
||||
func (db *DB) AddUser(user User, pass string) error {
|
||||
hashedPass, err := bcrypt.GenerateFromPassword([]byte(pass), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error creating password hash: %v", err)
|
||||
@ -42,11 +42,11 @@ func (db *DB) AddUser(user, pass, first, last string, writer, editor, admin bool
|
||||
|
||||
query := `
|
||||
INSERT INTO users
|
||||
(username, password, first_name, last_name, writer, editor, admin)
|
||||
(username, password, first_name, last_name, role)
|
||||
VALUES
|
||||
(?, ?, ?, ?, ?, ?, ?)
|
||||
(?, ?, ?, ?, ?)
|
||||
`
|
||||
_, err = db.Exec(query, user, string(hashedPass), first, last, writer, editor, admin)
|
||||
_, err = db.Exec(query, user.UserName, string(hashedPass), user.FirstName, user.LastName, user.Role)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error inserting user into DB: %v", err)
|
||||
}
|
||||
@ -54,7 +54,7 @@ func (db *DB) AddUser(user, pass, first, last string, writer, editor, admin bool
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *DB) GetID(user string) (int64, error) {
|
||||
func (db *DB) GetID(userName string) (int64, error) {
|
||||
var id int64
|
||||
|
||||
query := `
|
||||
@ -63,7 +63,7 @@ func (db *DB) GetID(user string) (int64, error) {
|
||||
WHERE
|
||||
username = ?
|
||||
`
|
||||
row := db.QueryRow(query, user)
|
||||
row := db.QueryRow(query, userName)
|
||||
if err := row.Scan(&id); err != nil {
|
||||
return 0, fmt.Errorf("user not in DB: %v", err)
|
||||
}
|
||||
|
18
cmd/data/user.go
Normal file
18
cmd/data/user.go
Normal file
@ -0,0 +1,18 @@
|
||||
package data
|
||||
|
||||
const (
|
||||
Admin = iota
|
||||
Editor
|
||||
Writer
|
||||
)
|
||||
|
||||
type Role int
|
||||
|
||||
type User struct {
|
||||
RejectedArticles *ArticleList
|
||||
UserName string
|
||||
FirstName string
|
||||
LastName string
|
||||
ID int64
|
||||
Role
|
||||
}
|
Reference in New Issue
Block a user