mirror of
https://github.com/directorz/mailfull-go.git
synced 2025-12-17 09:37:02 +00:00
Remove type MailData
This commit is contained in:
@@ -78,15 +78,7 @@ func (c *CmdAliasDomainAdd) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,15 +69,7 @@ func (c *CmdAliasDomainDel) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,15 +87,7 @@ func (c *CmdAliasUserAdd) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,15 +77,7 @@ func (c *CmdAliasUserDel) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,15 +96,7 @@ func (c *CmdAliasUserMod) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,15 +78,7 @@ func (c *CmdCatchAllSet) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,15 +69,7 @@ func (c *CmdCatchAllUnset) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,14 +40,7 @@ func (c *CmdCommit) Run(args []string) int {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
mailData, err := repo.MailData()
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,15 +86,7 @@ func (c *CmdDomainAdd) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,15 +69,7 @@ func (c *CmdDomainDel) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,15 +81,7 @@ func (c *CmdDomainDisable) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,15 +81,7 @@ func (c *CmdDomainEnable) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,15 +84,7 @@ func (c *CmdUserAdd) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,15 +83,7 @@ func (c *CmdUserDel) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,15 +127,7 @@ func (c *CmdUserPasswd) Run(args []string) int {
|
|||||||
if noCommit {
|
if noCommit {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
if err = repo.GenerateDatabases(); err != nil {
|
||||||
mailData, err := repo.MailData()
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
err = repo.GenerateDatabases(mailData)
|
|
||||||
if err != nil {
|
|
||||||
c.Meta.Errorf("%v\n", err)
|
c.Meta.Errorf("%v\n", err)
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|||||||
103
database.go
103
database.go
@@ -9,33 +9,84 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GenerateDatabases generates databases from the MailData directory.
|
// repoData represents a repoData.
|
||||||
func (r *Repository) GenerateDatabases(md *MailData) error {
|
type repoData struct {
|
||||||
sort.Slice(md.Domains, func(i, j int) bool { return md.Domains[i].Name() < md.Domains[j].Name() })
|
Domains []*Domain
|
||||||
sort.Slice(md.AliasDomains, func(i, j int) bool { return md.AliasDomains[i].Name() < md.AliasDomains[j].Name() })
|
AliasDomains []*AliasDomain
|
||||||
|
}
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
// repoData returns a repoData.
|
||||||
|
func (r *Repository) repoData() (*repoData, error) {
|
||||||
|
domains, err := r.Domains()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
aliasDomains, err := r.AliasDomains()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, domain := range domains {
|
||||||
|
users, err := r.Users(domain.Name())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
domain.Users = users
|
||||||
|
|
||||||
|
aliasUsers, err := r.AliasUsers(domain.Name())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
domain.AliasUsers = aliasUsers
|
||||||
|
|
||||||
|
catchAllUser, err := r.CatchAllUser(domain.Name())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
domain.CatchAllUser = catchAllUser
|
||||||
|
}
|
||||||
|
|
||||||
|
rd := &repoData{
|
||||||
|
Domains: domains,
|
||||||
|
AliasDomains: aliasDomains,
|
||||||
|
}
|
||||||
|
|
||||||
|
return rd, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateDatabases generates databases from the Repository.
|
||||||
|
func (r *Repository) GenerateDatabases() error {
|
||||||
|
rd, err := r.repoData()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Slice(rd.Domains, func(i, j int) bool { return rd.Domains[i].Name() < rd.Domains[j].Name() })
|
||||||
|
sort.Slice(rd.AliasDomains, func(i, j int) bool { return rd.AliasDomains[i].Name() < rd.AliasDomains[j].Name() })
|
||||||
|
|
||||||
|
for _, domain := range rd.Domains {
|
||||||
sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() })
|
sort.Slice(domain.Users, func(i, j int) bool { return domain.Users[i].Name() < domain.Users[j].Name() })
|
||||||
sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() })
|
sort.Slice(domain.AliasUsers, func(i, j int) bool { return domain.AliasUsers[i].Name() < domain.AliasUsers[j].Name() })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate files
|
// Generate files
|
||||||
if err := r.generateDbDomains(md); err != nil {
|
if err := r.generateDbDomains(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := r.generateDbDestinations(md); err != nil {
|
if err := r.generateDbDestinations(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := r.generateDbMaildirs(md); err != nil {
|
if err := r.generateDbMaildirs(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := r.generateDbLocaltable(md); err != nil {
|
if err := r.generateDbLocaltable(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := r.generateDbForwards(md); err != nil {
|
if err := r.generateDbForwards(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := r.generateDbPasswords(md); err != nil {
|
if err := r.generateDbPasswords(rd); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +110,7 @@ func (r *Repository) GenerateDatabases(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbDomains(md *MailData) error {
|
func (r *Repository) generateDbDomains(rd *repoData) error {
|
||||||
dbDomains, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDomains))
|
dbDomains, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDomains))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -69,7 +120,7 @@ func (r *Repository) generateDbDomains(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbDomains.Close()
|
defer dbDomains.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -79,7 +130,7 @@ func (r *Repository) generateDbDomains(md *MailData) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, aliasDomain := range md.AliasDomains {
|
for _, aliasDomain := range rd.AliasDomains {
|
||||||
if _, err := fmt.Fprintf(dbDomains, "%s virtual\n", aliasDomain.Name()); err != nil {
|
if _, err := fmt.Fprintf(dbDomains, "%s virtual\n", aliasDomain.Name()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -88,7 +139,7 @@ func (r *Repository) generateDbDomains(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbDestinations(md *MailData) error {
|
func (r *Repository) generateDbDestinations(rd *repoData) error {
|
||||||
dbDestinations, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDestinations))
|
dbDestinations, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbDestinations))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -98,7 +149,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbDestinations.Close()
|
defer dbDestinations.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -123,7 +174,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, aliasDomain := range md.AliasDomains {
|
for _, aliasDomain := range rd.AliasDomains {
|
||||||
if aliasDomain.Target() == domain.Name() {
|
if aliasDomain.Target() == domain.Name() {
|
||||||
if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", userName, aliasDomain.Name(), user.Name(), domain.Name()); err != nil {
|
if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", userName, aliasDomain.Name(), user.Name(), domain.Name()); err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -137,7 +188,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, aliasDomain := range md.AliasDomains {
|
for _, aliasDomain := range rd.AliasDomains {
|
||||||
if aliasDomain.Target() == domain.Name() {
|
if aliasDomain.Target() == domain.Name() {
|
||||||
if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", aliasUser.Name(), aliasDomain.Name(), aliasUser.Name(), domain.Name()); err != nil {
|
if _, err := fmt.Fprintf(dbDestinations, "%s@%s %s@%s\n", aliasUser.Name(), aliasDomain.Name(), aliasUser.Name(), domain.Name()); err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -150,7 +201,7 @@ func (r *Repository) generateDbDestinations(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbMaildirs(md *MailData) error {
|
func (r *Repository) generateDbMaildirs(rd *repoData) error {
|
||||||
dbMaildirs, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbMaildirs))
|
dbMaildirs, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbMaildirs))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -160,7 +211,7 @@ func (r *Repository) generateDbMaildirs(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbMaildirs.Close()
|
defer dbMaildirs.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -175,7 +226,7 @@ func (r *Repository) generateDbMaildirs(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbLocaltable(md *MailData) error {
|
func (r *Repository) generateDbLocaltable(rd *repoData) error {
|
||||||
dbLocaltable, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbLocaltable))
|
dbLocaltable, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbLocaltable))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -185,7 +236,7 @@ func (r *Repository) generateDbLocaltable(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbLocaltable.Close()
|
defer dbLocaltable.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -203,7 +254,7 @@ func (r *Repository) generateDbLocaltable(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbForwards(md *MailData) error {
|
func (r *Repository) generateDbForwards(rd *repoData) error {
|
||||||
dbForwards, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbForwards))
|
dbForwards, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbForwards))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -213,7 +264,7 @@ func (r *Repository) generateDbForwards(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbForwards.Close()
|
defer dbForwards.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@@ -243,7 +294,7 @@ func (r *Repository) generateDbForwards(md *MailData) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Repository) generateDbPasswords(md *MailData) error {
|
func (r *Repository) generateDbPasswords(rd *repoData) error {
|
||||||
dbPasswords, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbPasswords))
|
dbPasswords, err := os.Create(filepath.Join(r.DirDatabasePath, FileNameDbPasswords))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -253,7 +304,7 @@ func (r *Repository) generateDbPasswords(md *MailData) error {
|
|||||||
}
|
}
|
||||||
defer dbPasswords.Close()
|
defer dbPasswords.Close()
|
||||||
|
|
||||||
for _, domain := range md.Domains {
|
for _, domain := range rd.Domains {
|
||||||
if domain.Disabled() {
|
if domain.Disabled() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
47
maildata.go
47
maildata.go
@@ -1,47 +0,0 @@
|
|||||||
package mailfull
|
|
||||||
|
|
||||||
// MailData represents a MailData.
|
|
||||||
type MailData struct {
|
|
||||||
Domains []*Domain
|
|
||||||
AliasDomains []*AliasDomain
|
|
||||||
}
|
|
||||||
|
|
||||||
// MailData returns a MailData.
|
|
||||||
func (r *Repository) MailData() (*MailData, error) {
|
|
||||||
domains, err := r.Domains()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
aliasDomains, err := r.AliasDomains()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, domain := range domains {
|
|
||||||
users, err := r.Users(domain.Name())
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
domain.Users = users
|
|
||||||
|
|
||||||
aliasUsers, err := r.AliasUsers(domain.Name())
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
domain.AliasUsers = aliasUsers
|
|
||||||
|
|
||||||
catchAllUser, err := r.CatchAllUser(domain.Name())
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
domain.CatchAllUser = catchAllUser
|
|
||||||
}
|
|
||||||
|
|
||||||
mailData := &MailData{
|
|
||||||
Domains: domains,
|
|
||||||
AliasDomains: aliasDomains,
|
|
||||||
}
|
|
||||||
|
|
||||||
return mailData, nil
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user