register.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package cert
  2. import (
  3. "context"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/0xJacky/Nginx-UI/query"
  6. "github.com/0xJacky/Nginx-UI/settings"
  7. "github.com/pkg/errors"
  8. "github.com/uozi-tech/cosy/logger"
  9. "gorm.io/gorm"
  10. )
  11. // InitRegister init the default user for acme
  12. func InitRegister(ctx context.Context) {
  13. initBroadcastStatus(ctx)
  14. email := settings.CertSettings.Email
  15. if settings.CertSettings.Email == "" {
  16. return
  17. }
  18. caDir := settings.CertSettings.GetCADir()
  19. u := query.AcmeUser
  20. _, err := u.Where(u.Email.Eq(email),
  21. u.CADir.Eq(caDir)).First()
  22. if err == nil {
  23. return
  24. }
  25. if !errors.Is(err, gorm.ErrRecordNotFound) {
  26. logger.Error(err)
  27. return
  28. }
  29. // Create a new user
  30. user := &model.AcmeUser{
  31. Name: "System Initial User",
  32. Email: email,
  33. CADir: caDir,
  34. }
  35. err = user.Register()
  36. if err != nil {
  37. logger.Error(err)
  38. return
  39. }
  40. err = u.Create(user)
  41. if err != nil {
  42. logger.Error(err)
  43. return
  44. }
  45. logger.Info("ACME Default User registered")
  46. }
  47. func GetDefaultACMEUser() (user *model.AcmeUser, err error) {
  48. u := query.AcmeUser
  49. user, err = u.Where(u.Email.Eq(settings.CertSettings.Email),
  50. u.CADir.Eq(settings.CertSettings.GetCADir())).First()
  51. if err != nil {
  52. err = errors.Wrap(err, "get default user error")
  53. return
  54. }
  55. return
  56. }