mirror of
https://github.com/documize/community.git
synced 2025-07-22 06:39:43 +02:00
Xid dependency updated. Moved to 20 length ID values. Added new revision number to version and meta information. Revision number is timestamp format.
73 lines
1.7 KiB
Go
73 lines
1.7 KiB
Go
// Copyright 2016 Documize Inc. <legal@documize.com>. 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 <sales@documize.com>.
|
|
//
|
|
// 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
|
|
Revision int
|
|
License License
|
|
}
|
|
|
|
// License holds details of product license.
|
|
type License struct {
|
|
Name string `json:"name"`
|
|
Email string `json:"email"`
|
|
Edition string `json:"edition"`
|
|
Package string `json:"package"`
|
|
Plan string `json:"plan"`
|
|
Start time.Time `json:"start"`
|
|
End time.Time `json:"end"`
|
|
Seats int `json:"seats"`
|
|
Trial bool `json:"trial"`
|
|
Valid bool `json:"valid"`
|
|
}
|
|
|
|
// 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"`
|
|
}
|