register.go 1.2 KB

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