feat: add domain verification (#560)

* feat: add domain verification

* add checks

* add and fix tests

* fix go.mod

* regenerate proto
This commit is contained in:
Livio Amstutz
2020-08-06 15:03:03 +02:00
committed by GitHub
parent f80367b49a
commit 7015b226ef
26 changed files with 15815 additions and 14883 deletions

View File

@@ -1,12 +1,41 @@
package model
import es_models "github.com/caos/zitadel/internal/eventstore/models"
import (
http_util "github.com/caos/zitadel/internal/api/http"
"github.com/caos/zitadel/internal/crypto"
es_models "github.com/caos/zitadel/internal/eventstore/models"
)
type OrgDomain struct {
es_models.ObjectRoot
Domain string
Primary bool
Verified bool
Domain string
Primary bool
Verified bool
ValidationType OrgDomainValidationType
ValidationCode *crypto.CryptoValue
}
type OrgDomainValidationType int32
const (
OrgDomainValidationTypeUnspecified OrgDomainValidationType = iota
OrgDomainValidationTypeHTTP
OrgDomainValidationTypeDNS
)
func (t OrgDomainValidationType) CheckType() (http_util.CheckType, bool) {
switch t {
case OrgDomainValidationTypeHTTP:
return http_util.CheckTypeHTTP, true
case OrgDomainValidationTypeDNS:
return http_util.CheckTypeDNS, true
default:
return -1, false
}
}
func (t OrgDomainValidationType) IsDNS() bool {
return t == OrgDomainValidationTypeDNS
}
func NewOrgDomain(orgID, domain string) *OrgDomain {
@@ -16,3 +45,12 @@ func NewOrgDomain(orgID, domain string) *OrgDomain {
func (domain *OrgDomain) IsValid() bool {
return domain.AggregateID != "" && domain.Domain != ""
}
func (domain *OrgDomain) GenerateVerificationCode(codeGenerator crypto.Generator) (string, error) {
validationCodeCrypto, validationCode, err := crypto.NewCode(codeGenerator)
if err != nil {
return "", err
}
domain.ValidationCode = validationCodeCrypto
return validationCode, nil
}