diff options
Diffstat (limited to 'api4')
-rw-r--r-- | api4/system.go | 10 | ||||
-rw-r--r-- | api4/system_test.go | 7 |
2 files changed, 16 insertions, 1 deletions
diff --git a/api4/system.go b/api4/system.go index 7e860ba76..1f4589bf5 100644 --- a/api4/system.go +++ b/api4/system.go @@ -231,6 +231,14 @@ func getClientLicense(c *Context, w http.ResponseWriter, r *http.Request) { return } + var clientLicense map[string]string + + if app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) { + clientLicense = utils.ClientLicense + } else { + clientLicense = utils.GetSanitizedClientLicense() + } + w.Header().Set(model.HEADER_ETAG_SERVER, etag) - w.Write([]byte(model.MapToJson(utils.GetSanitizedClientLicense()))) + w.Write([]byte(model.MapToJson(clientLicense))) } diff --git a/api4/system_test.go b/api4/system_test.go index ba30dd1eb..850705040 100644 --- a/api4/system_test.go +++ b/api4/system_test.go @@ -180,6 +180,13 @@ func TestGetOldClientLicense(t *testing.T) { if _, err := Client.DoApiGet("/license/client?format=junk", ""); err == nil || err.StatusCode != http.StatusBadRequest { t.Fatal("should have errored with 400") } + + license, resp = th.SystemAdminClient.GetOldClientLicense("") + CheckNoError(t, resp) + + if len(license["IsLicensed"]) == 0 { + t.Fatal("license not returned correctly") + } } func TestGetAudits(t *testing.T) { |