mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
68 lines
1.2 KiB
Go
68 lines
1.2 KiB
Go
package cert
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/0xJacky/Nginx-UI/model"
|
|
"github.com/0xJacky/Nginx-UI/query"
|
|
"github.com/0xJacky/Nginx-UI/settings"
|
|
"github.com/pkg/errors"
|
|
"github.com/uozi-tech/cosy/logger"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// InitRegister init the default user for acme
|
|
func InitRegister(ctx context.Context) {
|
|
email := settings.CertSettings.Email
|
|
if settings.CertSettings.Email == "" {
|
|
return
|
|
}
|
|
caDir := settings.CertSettings.GetCADir()
|
|
u := query.AcmeUser
|
|
|
|
_, err := u.Where(u.Email.Eq(email),
|
|
u.CADir.Eq(caDir)).First()
|
|
|
|
if err == nil {
|
|
return
|
|
}
|
|
|
|
if !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
logger.Error(err)
|
|
return
|
|
}
|
|
|
|
// Create a new user
|
|
user := &model.AcmeUser{
|
|
Name: "System Initial User",
|
|
Email: email,
|
|
CADir: caDir,
|
|
}
|
|
|
|
err = user.Register()
|
|
if err != nil {
|
|
logger.Error(err)
|
|
return
|
|
}
|
|
|
|
err = u.Create(user)
|
|
if err != nil {
|
|
logger.Error(err)
|
|
return
|
|
}
|
|
|
|
logger.Info("ACME Default User registered")
|
|
}
|
|
|
|
func GetDefaultACMEUser() (user *model.AcmeUser, err error) {
|
|
u := query.AcmeUser
|
|
user, err = u.Where(u.Email.Eq(settings.CertSettings.Email),
|
|
u.CADir.Eq(settings.CertSettings.GetCADir())).First()
|
|
|
|
if err != nil {
|
|
err = errors.Wrap(err, "get default user error")
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|