From d14235b4e07e2f267b969ba61523bf3a09640f62 Mon Sep 17 00:00:00 2001 From: Martin Kraft Date: Mon, 1 Apr 2019 10:48:58 -0400 Subject: [PATCH] MM-14590: Adds license check to LDAP test and LDAP sync API endpoints. (#10519) * MM-14590: Adds license check to LDAP test and LDAP sync API endpoints. * MM-14590: Improves the LdapSync and LdapTest API tests. --- api4/ldap.go | 10 ++++++++++ api4/ldap_test.go | 24 +++++++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/api4/ldap.go b/api4/ldap.go index 0c42800adf..6bfb2e27c7 100644 --- a/api4/ldap.go +++ b/api4/ldap.go @@ -33,6 +33,11 @@ func (api *API) InitLdap() { } func syncLdap(c *Context, w http.ResponseWriter, r *http.Request) { + if c.App.License() == nil || !*c.App.License().Features.LDAP { + c.Err = model.NewAppError("Api4.syncLdap", "api.ldap_groups.license_error", nil, "", http.StatusNotImplemented) + return + } + if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_MANAGE_SYSTEM) { c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) return @@ -44,6 +49,11 @@ func syncLdap(c *Context, w http.ResponseWriter, r *http.Request) { } func testLdap(c *Context, w http.ResponseWriter, r *http.Request) { + if c.App.License() == nil || !*c.App.License().Features.LDAP { + c.Err = model.NewAppError("Api4.testLdap", "api.ldap_groups.license_error", nil, "", http.StatusNotImplemented) + return + } + if !c.App.SessionHasPermissionTo(c.App.Session, model.PERMISSION_MANAGE_SYSTEM) { c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) return diff --git a/api4/ldap_test.go b/api4/ldap_test.go index e738a6b78a..9cb9dffc3a 100644 --- a/api4/ldap_test.go +++ b/api4/ldap_test.go @@ -5,17 +5,32 @@ package api4 import ( "testing" + + "github.com/stretchr/testify/require" + + "github.com/mattermost/mattermost-server/model" ) func TestTestLdap(t *testing.T) { th := Setup().InitBasic() defer th.TearDown() - _, resp := th.Client.TestLdap() + _, resp := th.SystemAdminClient.TestLdap() + CheckNotImplementedStatus(t, resp) + require.NotNil(t, resp.Error) + require.Equal(t, "api.ldap_groups.license_error", resp.Error.Id) + + th.App.SetLicense(model.NewTestLicense("ldap_groups")) + + _, resp = th.Client.TestLdap() CheckForbiddenStatus(t, resp) + require.NotNil(t, resp.Error) + require.Equal(t, "api.context.permissions.app_error", resp.Error.Id) _, resp = th.SystemAdminClient.TestLdap() CheckNotImplementedStatus(t, resp) + require.NotNil(t, resp.Error) + require.Equal(t, "ent.ldap.disabled.app_error", resp.Error.Id) } func TestSyncLdap(t *testing.T) { @@ -23,6 +38,13 @@ func TestSyncLdap(t *testing.T) { defer th.TearDown() _, resp := th.SystemAdminClient.SyncLdap() + CheckNotImplementedStatus(t, resp) + require.NotNil(t, resp.Error) + require.Equal(t, "api.ldap_groups.license_error", resp.Error.Id) + + th.App.SetLicense(model.NewTestLicense("ldap_groups")) + + _, resp = th.SystemAdminClient.SyncLdap() CheckNoError(t, resp) _, resp = th.Client.SyncLdap()