register.go 1.2 KB

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