This commit is contained in:
Sense T
2024-04-11 11:41:33 +08:00
parent 7a5fcf1972
commit 58c66fc3a8
10 changed files with 68 additions and 36 deletions

View File

@@ -59,17 +59,25 @@ func CreateDomain(d *models.Domain) (*models.Domain, error) {
func GetDomains(domain string) ([]models.Domain, error) {
if domain != "" {
r, err := (domainsDAO{}).GetAll(database.Client, models.Domain{DomainName: domain})
r, err := (domainsDAO{}).GetAll(database.Client, &models.Domain{DomainName: domain})
n := make([]models.Domain, 0)
for _, e := range r {
n = append(n, e.(models.Domain))
i, ok := e.(*models.Domain)
if !ok {
continue
}
n = append(n, *i)
}
return n, err
} else {
r, err := (domainsDAO{}).GetAll(database.Client, models.Domain{})
r, err := (domainsDAO{}).GetAll(database.Client, &models.Domain{})
n := make([]models.Domain, 0)
for _, e := range r {
n = append(n, e.(models.Domain))
i, ok := e.(*models.Domain)
if !ok {
continue
}
n = append(n, *i)
}
return n, err
}
@@ -117,13 +125,13 @@ func DeleteDomain(id string) error {
}
tx := database.Client.Begin()
domain, err := (domainsDAO{}).GetOne(tx, models.Domain{ID: ID})
domain, err := (domainsDAO{}).GetOne(tx, &models.Domain{ID: ID})
if err != nil {
tx.Rollback()
return err
}
if err := (domainsDAO{}).Delete(tx, models.Domain{ID: ID}); err != nil {
if err := (domainsDAO{}).Delete(tx, &models.Domain{ID: ID}); err != nil {
tx.Rollback()
return err
}
@@ -138,7 +146,7 @@ func DeleteDomain(id string) error {
// for metrics
func getDomainCounts() (float64, error) {
c, err := (domainsDAO{}).GetAll(database.Client, models.Domain{})
c, err := (domainsDAO{}).GetAll(database.Client, &models.Domain{})
if err != nil {
return 0, err
}

View File

@@ -1,6 +1,7 @@
package controllers
import (
"errors"
"reCoreD-UI/database"
"reCoreD-UI/models"
"strings"
@@ -17,7 +18,7 @@ type settingsDAO struct {
func SetupDNS(dns ...string) error {
settings := models.Settings{Key: models.SettingsKeyDNSServer, Value: strings.Join(dns, dnsSep)}
if _, err := (settingsDAO{}).UpdateOrCreate(database.Client, &settings, models.Settings{Key: models.SettingsKeyDNSServer}); err != nil {
if _, err := (settingsDAO{}).UpdateOrCreate(database.Client, &settings, &models.Settings{Key: models.SettingsKeyDNSServer}); err != nil {
return err
}
@@ -25,16 +26,20 @@ func SetupDNS(dns ...string) error {
}
func GetDNS() ([]string, error) {
settings, err := (settingsDAO{}).GetOne(database.Client, models.Settings{Key: models.SettingsKeyDNSServer})
settings, err := (settingsDAO{}).GetOne(database.Client, &models.Settings{Key: models.SettingsKeyDNSServer})
if err != nil {
return nil, err
}
d, ok := settings.(*models.Settings)
if !ok {
return nil, errors.New("cannot get dns config")
}
return strings.Split(settings.(models.Settings).Value, dnsSep), nil
return strings.Split(d.Value, dnsSep), nil
}
func SetupAdmin(username, password string) error {
logrus.Debugf("got %s:%s", username, password)
logrus.Debugf("got %s: %s", username, password)
settingUsername := models.Settings{
Key: models.SettingsKeyAdminUsername,
@@ -46,12 +51,12 @@ func SetupAdmin(username, password string) error {
}
tx := database.Client.Begin()
if _, err := (settingsDAO{}).UpdateOrCreate(tx, &settingUsername, models.Settings{Key: models.SettingsKeyAdminUsername}); err != nil {
if _, err := (settingsDAO{}).UpdateOrCreate(tx, &settingUsername, &models.Settings{Key: models.SettingsKeyAdminUsername}); err != nil {
tx.Rollback()
return err
}
if _, err := (settingsDAO{}).UpdateOrCreate(tx, &settingPassword, models.Settings{Key: models.SettingsKeyAdminPassword}); err != nil {
if _, err := (settingsDAO{}).UpdateOrCreate(tx, &settingPassword, &models.Settings{Key: models.SettingsKeyAdminPassword}); err != nil {
tx.Rollback()
return err
}
@@ -60,17 +65,25 @@ func SetupAdmin(username, password string) error {
}
func GetAdmin() (string, string, error) {
settings, err := (settingsDAO{}).GetOne(database.Client, models.Settings{Key: models.SettingsKeyAdminUsername})
settings, err := (settingsDAO{}).GetOne(database.Client, &models.Settings{Key: models.SettingsKeyAdminUsername})
if err != nil {
return "", "", err
}
username := settings.(models.Settings).Value
u, ok := settings.(*models.Settings)
if !ok {
return "", "", errors.New("cannot get admin username")
}
username := u.Value
settings, err = (settingsDAO{}).GetOne(database.Client, models.Settings{Key: models.SettingsKeyAdminPassword})
settings, err = (settingsDAO{}).GetOne(database.Client, &models.Settings{Key: models.SettingsKeyAdminPassword})
if err != nil {
return "", "", err
}
password := settings.(models.Settings).Value
p, ok := settings.(*models.Settings)
password := p.Value
if !ok {
return "", "", errors.New("cannot get admin password")
}
return username, password, nil
}