Add methods to add data to the template data.

This commit is contained in:
Mariano Cano 2020-07-08 15:53:11 -07:00
parent ef0ed0ff95
commit 5a04e3b36d
2 changed files with 25 additions and 4 deletions

View file

@ -24,10 +24,6 @@ func (o *Options) apply(opts []Option) (*Options, error) {
return o, nil
}
// TemplateData is an alias for map[string]interface{}. It represents the data
// passed to the templates.
type TemplateData map[string]interface{}
// Option is the type used as a variadic argument in NewCertificate.
type Option func(o *Options) error

View file

@ -4,8 +4,33 @@ const (
UserKey = "User"
SubjectKey = "Subject"
SANsKey = "SANs"
TokenKey = "Token"
)
// TemplateData is an alias for map[string]interface{}. It represents the data
// passed to the templates.
type TemplateData map[string]interface{}
func (t TemplateData) Set(key string, v interface{}) {
t[key] = v
}
func (t TemplateData) SetUserData(v Subject) {
t[UserKey] = v
}
func (t TemplateData) SetSubject(v Subject) {
t[SubjectKey] = v
}
func (t TemplateData) SetSANs(sans []string) {
t[SANsKey] = CreateSANs(sans)
}
func (t TemplateData) SetToken(v interface{}) {
t[TokenKey] = v
}
const DefaultLeafTemplate = `{
"subject": {{ toJson .Subject }},
"sans": {{ toJson .SANs }},