// Copyright 2016 Documize Inc. . All rights reserved. // // This software (Documize Community Edition) is licensed under // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html // // You can operate outside the AGPL restrictions by purchasing // Documize Enterprise Edition and obtaining a commercial license // by contacting . // // https://documize.com package env import ( "fmt" "time" ) // ProdInfo describes a product type ProdInfo struct { Edition string Title string Version string Major string Minor string Patch string License License } // License holds details of product license. type License struct { Name string `json:"name"` Email string `json:"email"` Edition string `json:"edition"` Start time.Time `json:"start"` End time.Time `json:"end"` Seats int `json:"seats"` Trial bool `json:"trial"` Valid bool } // IsEmpty determines if we have a license. func (l *License) IsEmpty() bool { return l.Seats == 0 && len(l.Name) == 0 && len(l.Email) == 0 && l.Start.Year() == 1 && l.End.Year() == 1 } // Status returns formatted message stating if license is empty/populated and invalid/valid. func (l *License) Status() string { lp := "populated" if l.IsEmpty() { lp = "empty" } lv := "invalid" if l.Valid { lv = "valid" } return fmt.Sprintf("License is %s and %s", lp, lv) } // IsValid returns if license is valid func (l *License) IsValid() bool { return l.Valid == true } // LicenseData holds encrypted data and is unpacked into License. type LicenseData struct { Key string `json:"key"` Signature string `json:"signature"` }