summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/license.go10
-rw-r--r--api/user.go2
-rw-r--r--utils/license.go12
-rw-r--r--utils/license_test.go6
4 files changed, 21 insertions, 9 deletions
diff --git a/api/license.go b/api/license.go
index f9ecce486..b7bf8a234 100644
--- a/api/license.go
+++ b/api/license.go
@@ -173,12 +173,18 @@ func RemoveLicense() *model.AppError {
}
func getClientLicenceConfig(c *Context, w http.ResponseWriter, r *http.Request) {
- etag := utils.GetClientLicenseEtag()
+ etag := utils.GetClientLicenseEtag(!c.IsSystemAdmin())
if HandleEtag(etag, w, r) {
return
}
- clientLicense := utils.ClientLicense
+ var clientLicense map[string]string
+
+ if c.IsSystemAdmin() {
+ clientLicense = utils.ClientLicense
+ } else {
+ clientLicense = utils.GetSanitizedClientLicense()
+ }
w.Header().Set(model.HEADER_ETAG_SERVER, etag)
w.Write([]byte(model.MapToJson(clientLicense)))
diff --git a/api/user.go b/api/user.go
index d7eab3d46..b0d2c79b4 100644
--- a/api/user.go
+++ b/api/user.go
@@ -922,7 +922,7 @@ func getInitialLoad(c *Context, w http.ResponseWriter, r *http.Request) {
if c.IsSystemAdmin() {
il.LicenseCfg = utils.ClientLicense
} else {
- il.LicenseCfg = utils.GetSantizedClientLicense()
+ il.LicenseCfg = utils.GetSanitizedClientLicense()
}
w.Write([]byte(il.ToJson()))
diff --git a/utils/license.go b/utils/license.go
index f0a91665e..4d6387788 100644
--- a/utils/license.go
+++ b/utils/license.go
@@ -141,17 +141,23 @@ func getClientLicense(l *model.License) map[string]string {
return props
}
-func GetClientLicenseEtag() string {
+func GetClientLicenseEtag(useSanitized bool) string {
value := ""
- for k, v := range ClientLicense {
+ lic := ClientLicense
+
+ if useSanitized {
+ lic = GetSanitizedClientLicense()
+ }
+
+ for k, v := range lic {
value += fmt.Sprintf("%s:%s;", k, v)
}
return model.Etag(fmt.Sprintf("%x", md5.Sum([]byte(value))))
}
-func GetSantizedClientLicense() map[string]string {
+func GetSanitizedClientLicense() map[string]string {
sanitizedLicense := make(map[string]string)
for k, v := range ClientLicense {
diff --git a/utils/license_test.go b/utils/license_test.go
index d85d59dcf..6508172d5 100644
--- a/utils/license_test.go
+++ b/utils/license_test.go
@@ -50,18 +50,18 @@ func TestValidateLicense(t *testing.T) {
}
func TestClientLicenseEtag(t *testing.T) {
- etag1 := GetClientLicenseEtag()
+ etag1 := GetClientLicenseEtag(false)
ClientLicense["SomeFeature"] = "true"
- etag2 := GetClientLicenseEtag()
+ etag2 := GetClientLicenseEtag(false)
if etag1 == etag2 {
t.Fatal("etags should not match")
}
ClientLicense["SomeFeature"] = "false"
- etag3 := GetClientLicenseEtag()
+ etag3 := GetClientLicenseEtag(false)
if etag2 == etag3 {
t.Fatal("etags should not match")
}