From c2dca4105757403bc00648b443f2230c147a8861 Mon Sep 17 00:00:00 2001 From: teru Date: Mon, 22 Aug 2016 22:24:54 +0900 Subject: [PATCH] Add a field to Domain struct --- domain.go | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/domain.go b/domain.go index af499e0..c3eb9b8 100644 --- a/domain.go +++ b/domain.go @@ -11,6 +11,7 @@ import ( // Domain represents a Domain. type Domain struct { name string + disabled bool Users []*User AliasUsers []*AliasUser CatchAllUser *CatchAllUser @@ -25,22 +26,41 @@ func (p DomainSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] } // NewDomain creates a new Domain instance. func NewDomain(name string) (*Domain, error) { - if !validDomainName(name) { - return nil, ErrInvalidDomainName - } + d := &Domain{} - d := &Domain{ - name: name, + if err := d.setName(name); err != nil { + return nil, err } return d, nil } +// setName sets the name. +func (d *Domain) setName(name string) error { + if !validDomainName(name) { + return ErrInvalidDomainName + } + + d.name = name + + return nil +} + // Name returns name. func (d *Domain) Name() string { return d.name } +// SetDisabled disables the Domain if the input is true. +func (d *Domain) SetDisabled(disabled bool) { + d.disabled = disabled +} + +// Disabled returns true if the Domain is disabled. +func (d *Domain) Disabled() bool { + return d.disabled +} + // Domains returns a Domain slice. func (r *Repository) Domains() ([]*Domain, error) { fileInfos, err := ioutil.ReadDir(r.DirMailDataPath)