[MM-42339] api4/license: add a nil check to not panic if server is not EE dist (#19770)

* api4/license: add a nil check to not panic if server is not EE dist

* add a test case
Этот коммит содержится в:
Ibrahim Serdar Acikgoz
2022-03-30 19:09:57 +03:00
коммит произвёл GitHub
родитель 82c8bd33ed
Коммит 3cab0f1d8d
2 изменённых файлов: 21 добавлений и 0 удалений

Просмотреть файл

@@ -242,6 +242,11 @@ func requestRenewalLink(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
if c.App.Cloud() == nil {
c.Err = model.NewAppError("requestRenewalLink", "api.license.upgrade_needed.app_error", nil, "", http.StatusForbidden)
return
}
// check if it is possible to renew license on the portal with generated token
e := c.App.Cloud().GetLicenseRenewalStatus(c.AppContext.Session().UserId, token)
if e != nil {

Просмотреть файл

@@ -262,3 +262,19 @@ func TestRequestTrialLicense(t *testing.T) {
CheckForbiddenStatus(t, resp)
})
}
func TestRequestRenewalLink(t *testing.T) {
th := Setup(t)
defer th.TearDown()
require.NotPanics(t, func() {
cloudImpl := th.App.Srv().Cloud
defer func() {
th.App.Srv().Cloud = cloudImpl
}()
th.App.Srv().Cloud = nil
resp, err := th.SystemAdminClient.DoAPIGet("/license/renewal", "")
CheckErrorID(t, err, "app.license.generate_renewal_token.no_license")
require.Equal(t, http.StatusBadRequest, resp.StatusCode)
})
}