summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-09-01 17:05:20 -0400
committerGitHub <noreply@github.com>2016-09-01 17:05:20 -0400
commit5d7f2399620281dde1f4f85e1812aac9f18c96f9 (patch)
treebeba814a678dff6c0fb1da9a728e49af144d9d24 /api
parent949e57076aa41584b4104abc2bed98c5f9d91165 (diff)
downloadchat-5d7f2399620281dde1f4f85e1812aac9f18c96f9.tar.gz
chat-5d7f2399620281dde1f4f85e1812aac9f18c96f9.tar.bz2
chat-5d7f2399620281dde1f4f85e1812aac9f18c96f9.zip
Adding LDAP test connection button. Reordering LDAP settings. (#3912)
Diffstat (limited to 'api')
-rw-r--r--api/admin.go21
-rw-r--r--api/admin_test.go12
2 files changed, 32 insertions, 1 deletions
diff --git a/api/admin.go b/api/admin.go
index 3b324c75f..d48c8d379 100644
--- a/api/admin.go
+++ b/api/admin.go
@@ -42,6 +42,7 @@ func InitAdmin() {
BaseRoutes.Admin.Handle("/reset_mfa", ApiAdminSystemRequired(adminResetMfa)).Methods("POST")
BaseRoutes.Admin.Handle("/reset_password", ApiAdminSystemRequired(adminResetPassword)).Methods("POST")
BaseRoutes.Admin.Handle("/ldap_sync_now", ApiAdminSystemRequired(ldapSyncNow)).Methods("POST")
+ BaseRoutes.Admin.Handle("/ldap_test", ApiAdminSystemRequired(ldapTest)).Methods("POST")
BaseRoutes.Admin.Handle("/saml_metadata", ApiAppHandler(samlMetadata)).Methods("GET")
BaseRoutes.Admin.Handle("/add_certificate", ApiAdminSystemRequired(addCertificate)).Methods("POST")
BaseRoutes.Admin.Handle("/remove_certificate", ApiAdminSystemRequired(removeCertificate)).Methods("POST")
@@ -643,7 +644,7 @@ func ldapSyncNow(c *Context, w http.ResponseWriter, r *http.Request) {
if ldapI := einterfaces.GetLdapInterface(); ldapI != nil {
ldapI.SyncNow()
} else {
- l4g.Error("%v", model.NewLocAppError("saveComplianceReport", "ent.compliance.licence_disable.app_error", nil, "").Error())
+ l4g.Error("%v", model.NewLocAppError("ldapSyncNow", "ent.ldap.disabled.app_error", nil, "").Error())
}
}
}()
@@ -653,6 +654,24 @@ func ldapSyncNow(c *Context, w http.ResponseWriter, r *http.Request) {
w.Write([]byte(model.MapToJson(rdata)))
}
+func ldapTest(c *Context, w http.ResponseWriter, r *http.Request) {
+ if ldapI := einterfaces.GetLdapInterface(); ldapI != nil && utils.IsLicensed && *utils.License.Features.LDAP && *utils.Cfg.LdapSettings.Enable {
+ if err := ldapI.RunTest(); err != nil {
+ c.Err = err
+ c.Err.StatusCode = 500
+ }
+ } else {
+ c.Err = model.NewLocAppError("ldapTest", "ent.ldap.disabled.app_error", nil, "")
+ c.Err.StatusCode = http.StatusNotImplemented
+ }
+
+ if c.Err == nil {
+ rdata := map[string]string{}
+ rdata["status"] = "ok"
+ w.Write([]byte(model.MapToJson(rdata)))
+ }
+}
+
func samlMetadata(c *Context, w http.ResponseWriter, r *http.Request) {
samlInterface := einterfaces.GetSamlInterface()
diff --git a/api/admin_test.go b/api/admin_test.go
index 967e3ceb3..3d8a95676 100644
--- a/api/admin_test.go
+++ b/api/admin_test.go
@@ -161,6 +161,18 @@ func TestEmailTest(t *testing.T) {
}
}
+func TestLdapTest(t *testing.T) {
+ th := Setup().InitBasic().InitSystemAdmin()
+
+ if _, err := th.BasicClient.TestLdap(utils.Cfg); err == nil {
+ t.Fatal("Shouldn't have permissions")
+ }
+
+ if _, err := th.SystemAdminClient.TestLdap(utils.Cfg); err == nil {
+ t.Fatal("should have errored")
+ }
+}
+
func TestGetTeamAnalyticsStandard(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
th.CreatePrivateChannel(th.BasicClient, th.BasicTeam)