diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index baefb1eb97..81d9d32320 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -99,4 +99,35 @@ class SettingsController extends Controller } + public function ldaptestlogin(Request $request) + { + + \Log::debug('Preparing to test LDAP login'); + + try { + $connection = Ldap::connectToLdap(); + try { + \Log::debug('attempting to bind to LDAP for LDAP test'); + Ldap::bindAdminToLdap($connection); + try { + $ldap_user = Ldap::findAndBindUserLdap($request->input('ldaptest_user'), $request->input('ldaptest_password')); + return response()->json(['message' => 'It worked! '. $request->input('username').' successfully binded to LDAP.'], 200); + } catch (\Exception $e) { + \Log::debug('LDAP login failed'); + return response()->json(['message' => $e->getMessage()], 400); + } + + } catch (\Exception $e) { + \Log::debug('Bind failed'); + return response()->json(['message' => $e->getMessage()], 400); + //return response()->json(['message' => $e->getMessage()], 500); + } + } catch (\Exception $e) { + \Log::debug('Connection failed'); + return response()->json(['message' => $e->getMessage()], 600); + } + + + } + } diff --git a/resources/views/settings/ldap.blade.php b/resources/views/settings/ldap.blade.php index d114fcfbe4..4ed8661d21 100644 --- a/resources/views/settings/ldap.blade.php +++ b/resources/views/settings/ldap.blade.php @@ -328,24 +328,52 @@ + @if ($setting->ldap_enabled)
This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login.
+Enter a valid LDAP username and password to test whether your LDAP login is configured correctly.
+