summaryrefslogtreecommitdiffstats
path: root/utils/license.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/license.go')
-rw-r--r--utils/license.go23
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)