diff options
Diffstat (limited to 'utils/license.go')
-rw-r--r-- | utils/license.go | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/utils/license.go b/utils/license.go index 54bad45b5..2aaa2a549 100644 --- a/utils/license.go +++ b/utils/license.go @@ -75,7 +75,24 @@ func LoadLicense(licenseBytes []byte) { l4g.Warn(T("utils.license.load_license.invalid.warn")) } +var licenseListeners = map[string]func(){} + +func AddLicenseListener(listener func()) string { + id := model.NewId() + licenseListeners[id] = listener + return id +} + +func RemoveLicenseListener(id string) { + delete(licenseListeners, id) +} + func SetLicense(license *model.License) bool { + defer func() { + for _, listener := range licenseListeners { + listener() + } + }() if license == nil { SetIsLicensed(false) @@ -95,7 +112,6 @@ func SetLicense(license *model.License) bool { licenseValue.Store(license) SetIsLicensed(true) clientLicenseValue.Store(getClientLicense(license)) - ClientCfg = getClientConfig(Cfg) return true } @@ -105,7 +121,6 @@ func SetLicense(license *model.License) bool { func RemoveLicense() { SetLicense(nil) - ClientCfg = getClientConfig(Cfg) } func ValidateLicense(signed []byte) (bool, string) { @@ -153,8 +168,8 @@ func ValidateLicense(signed []byte) (bool, string) { return true, string(plaintext) } -func GetAndValidateLicenseFileFromDisk() (*model.License, []byte) { - fileName := GetLicenseFileLocation(*Cfg.ServiceSettings.LicenseFileLocation) +func GetAndValidateLicenseFileFromDisk(location string) (*model.License, []byte) { + fileName := GetLicenseFileLocation(location) if _, err := os.Stat(fileName); err != nil { l4g.Debug("We could not find the license key in the database or on disk at %v", fileName) |