Add: support insert active user

This commit is contained in:
2021-12-13 13:43:09 +08:00
parent a826e4bf29
commit d7ca68aad1
2 changed files with 28 additions and 3 deletions

View File

@@ -23,7 +23,22 @@ func (database *Database) LoginAsAnonymous() (*User, error) {
} }
func (database *Database) Register(username string, password string, usertype int64) (*User, error) { func (database *Database) Register(username string, password string, usertype int64) (*User, error) {
_, err := database.stmt.insertUser.Exec(username, password, usertype, 0) countAdmin, err := database.CountAdmin()
if err != nil {
return nil, err
}
active := false
if countAdmin == 0 {
active = true
}
// active normal user by default
if usertype == 2 {
active = true
}
_, err = database.stmt.insertUser.Exec(username, password, usertype, active, 0)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -40,3 +55,12 @@ func (database *Database) GetUserById(id int64) (*User, error) {
} }
return user, nil return user, nil
} }
func (database *Database) CountAdmin() (int64, error) {
var count int64
err := database.stmt.countAdmin.QueryRow().Scan(&count)
if err != nil {
return 0, err
}
return count, nil
}

View File

@@ -32,6 +32,7 @@ var initUsersTableQuery = `CREATE TABLE IF NOT EXISTS users (
username TEXT NOT NULL UNIQUE, username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL, password TEXT NOT NULL,
role INTEGER NOT NULL, role INTEGER NOT NULL,
active BOOLEAN NOT NULL,
avatar_id INTEGER NOT NULL, avatar_id INTEGER NOT NULL,
FOREIGN KEY(avatar_id) REFERENCES avatars(id) FOREIGN KEY(avatar_id) REFERENCES avatars(id)
);` );`
@@ -170,8 +171,8 @@ LIMIT ?;`
var insertFeedbackQuery = `INSERT INTO feedbacks (time, feedback, header) var insertFeedbackQuery = `INSERT INTO feedbacks (time, feedback, header)
VALUES (?, ?, ?);` VALUES (?, ?, ?);`
var insertUserQuery = `INSERT INTO users (username, password, role, avatar_id) var insertUserQuery = `INSERT INTO users (username, password, role, active, avatar_id)
VALUES (?, ?, ?, ?);` VALUES (?, ?, ?, ?, ?);`
var countUserQuery = `SELECT count(*) FROM users;` var countUserQuery = `SELECT count(*) FROM users;`