register.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. email := settings.CertSettings.Email
  14. if settings.CertSettings.Email == "" {
  15. return
  16. }
  17. caDir := settings.CertSettings.GetCADir()
  18. u := query.AcmeUser
  19. _, err := u.Where(u.Email.Eq(email),
  20. u.CADir.Eq(caDir)).First()
  21. if err == nil {
  22. return
  23. }
  24. if !errors.Is(err, gorm.ErrRecordNotFound) {
  25. logger.Error(err)
  26. return
  27. }
  28. // Create a new user
  29. user := &model.AcmeUser{
  30. Name: "System Initial User",
  31. Email: email,
  32. CADir: caDir,
  33. }
  34. err = user.Register()
  35. if err != nil {
  36. logger.Error(err)
  37. return
  38. }
  39. err = u.Create(user)
  40. if err != nil {
  41. logger.Error(err)
  42. return
  43. }
  44. logger.Info("ACME Default User registered")
  45. }
  46. func GetDefaultACMEUser() (user *model.AcmeUser, err error) {
  47. u := query.AcmeUser
  48. user, err = u.Where(u.Email.Eq(settings.CertSettings.Email),
  49. u.CADir.Eq(settings.CertSettings.GetCADir())).First()
  50. if err != nil {
  51. err = errors.Wrap(err, "get default user error")
  52. return
  53. }
  54. return
  55. }