init
This commit is contained in:
commit
b10790c212
40 changed files with 4149 additions and 0 deletions
52
user/init.go
Normal file
52
user/init.go
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
package user
|
||||
|
||||
import (
|
||||
"caddydash/db"
|
||||
"fmt"
|
||||
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
func InitAdminUser(username string, password string, cdb *db.ConfigDB) error {
|
||||
hasUser, err := cdb.HasAnyUser()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to check if any user exists: %w", err)
|
||||
}
|
||||
if hasUser {
|
||||
userStatus.SetInitialized(true)
|
||||
return nil
|
||||
}
|
||||
hashedPassword, err := hashPassword(password)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to hash password: %w", err)
|
||||
}
|
||||
err = cdb.AddUser(username, hashedPassword)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to add admin user: %w", err)
|
||||
}
|
||||
userStatus.SetInitialized(true)
|
||||
return nil
|
||||
}
|
||||
|
||||
// bcrypt加密password串
|
||||
func hashPassword(password string) (string, error) {
|
||||
bytes, err := bcrypt.GenerateFromPassword([]byte(password), 11)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(bytes), err
|
||||
}
|
||||
|
||||
func InitAdminUserStatus(cdb *db.ConfigDB) error {
|
||||
hasUser, err := cdb.HasAnyUser()
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to check if any user exists: %w", err)
|
||||
}
|
||||
if hasUser {
|
||||
userStatus.SetInitialized(true)
|
||||
return nil
|
||||
} else {
|
||||
userStatus.SetInitialized(false)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue