diff options
author | Stephen Beaver <sbeaver@netgate.com> | 2016-03-16 10:54:22 -0400 |
---|---|---|
committer | Stephen Beaver <sbeaver@netgate.com> | 2016-03-16 10:54:53 -0400 |
commit | 28f38270fddb7e10d4060af4f5efa1c7ac27d317 (patch) | |
tree | d5b7d9ca9d797d8c36810ff2b22b06b5c07402e5 /src | |
parent | 91d598815528b71ec9842fed6e5c11ddd6e30438 (diff) | |
download | pfsense-28f38270fddb7e10d4060af4f5efa1c7ac27d317.zip pfsense-28f38270fddb7e10d4060af4f5efa1c7ac27d317.tar.gz |
LDAP test pop-up replaced with Bootstrap styled modal
Diffstat (limited to 'src')
-rw-r--r-- | src/etc/pfSense.obsoletedfiles | 1 | ||||
-rw-r--r-- | src/usr/local/www/system_usermanager_settings.php | 119 | ||||
-rwxr-xr-x | src/usr/local/www/system_usermanager_settings_test.php | 139 |
3 files changed, 111 insertions, 148 deletions
diff --git a/src/etc/pfSense.obsoletedfiles b/src/etc/pfSense.obsoletedfiles index d3778e2..9903a4b 100644 --- a/src/etc/pfSense.obsoletedfiles +++ b/src/etc/pfSense.obsoletedfiles @@ -867,6 +867,7 @@ /usr/local/www/system_firmware_settings.php /usr/local/www/system_firmware_restorefullbackup.php /usr/local/www/system_usermanager_addcert.php +/usr/local/www/system_usermanager_settings_test.php /usr/local/www/themes /usr/local/www/ticker.js /usr/local/www/tree-images diff --git a/src/usr/local/www/system_usermanager_settings.php b/src/usr/local/www/system_usermanager_settings.php index 0ef51b0..79c28bb 100644 --- a/src/usr/local/www/system_usermanager_settings.php +++ b/src/usr/local/www/system_usermanager_settings.php @@ -62,13 +62,75 @@ ##|-PRIV require("guiconfig.inc"); +require_once("auth.inc"); + +// Test LDAP setting in response to an ajax request from this page. +if ($_REQUEST['ajax']) { + + if (isset($config['system']['authserver'][0]['host'])) { + $auth_server = $config['system']['authserver'][0]['host']; + $authserver = $_REQUEST['authserver']; + $authcfg = auth_get_authserver($authserver); + } + + if (!$authcfg) { + printf(gettext("%sError: Could not find settings for %s%s"), '<span class="text-danger">', htmlspecialchars($authserver), "</span>"); + exit; + } else { + print("<pre>"); + + print('<table class="table table-hover table-striped table-condensed">'); + + print("<tr><td>" . sprintf(gettext("Attempting connection to %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>")); + if (ldap_test_connection($authcfg)) { + print("<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"); + + print("<tr><td>" . sprintf(gettext("Attempting bind to %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>")); + if (ldap_test_bind($authcfg)) { + print("<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"); + + print("<tr><td>" . sprintf(gettext("Attempting to fetch Organizational Units from %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>")); + $ous = ldap_get_user_ous(true, $authcfg); + if (count($ous)>1) { + print("<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"); + print('<tr ><td colspan="3">'); + if (is_array($ous)) { + print("<b>" . gettext("Organization units found") . "</b>"); + print('<table class="table table-hover">'); + foreach ($ous as $ou) { + print("<tr><td>" . $ou . "</td></tr>"); + } + print("</td></tr>"); + print("</table>"); + } + } else { + print("<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"); + } + + print("</table><p/>"); + + } else { + print("<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"); + print("</table><p/>"); + } + } else { + print("<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"); + print("</table><p/>"); + } + + print("</pre>"); + exit; + } +} $pconfig['session_timeout'] = &$config['system']['webgui']['session_timeout']; + if (isset($config['system']['webgui']['authmode'])) { $pconfig['authmode'] = &$config['system']['webgui']['authmode']; } else { $pconfig['authmode'] = "Local Database"; } + $pconfig['backend'] = &$config['system']['webgui']['backend']; // Page title for main admin @@ -130,15 +192,6 @@ if ($savemsg) { print_info_box($savemsg, 'success'); } -if ($save_and_test) { - echo "<script>\n"; - echo "//<![CDATA[\n"; - echo "myRef = window.open('system_usermanager_settings_test.php?authserver=".$pconfig['authmode']."','mywin','left=20,top=20,width=700,height=550,toolbar=1,resizable=0');\n"; - echo "if (myRef==null || typeof(myRef)=='undefined') alert('" . gettext("Popup blocker detected. Action aborted.") ."');\n"; - echo "//]]>\n"; - echo "</script>\n"; -} - $tab_array = array(); $tab_array[] = array(gettext("Users"), false, "system_usermanager.php"); $tab_array[] = array(gettext("Groups"), false, "system_groupmanager.php"); @@ -185,6 +238,54 @@ $form->addGlobal(new Form_Button( ))->addClass('btn-info'); $form->add($section); + +$modal = new Modal("LDAP settings", "testresults", true); + +$modal->addInput(new Form_StaticText( + 'Test results', + '<span id="ldaptestop">Testing pfSense LDAP settings... One moment please...' . $g['product_name'] . '</span>' +)); + +$form->add($modal); + print $form; + + +if ($save_and_test) { +?> +<script type="text/javascript"> +//<![CDATA[ +events.push(function() { + + function test_LDAP() { + var ajaxRequest; + var authserver = $('#authmode').val(); + + ajaxRequest = $.ajax( + { + url: "/system_usermanager_settings.php", + type: "post", + data: { + ajax: "ajax", + authserver: authserver + } + } + ); + + // Deal with the results of the above ajax call + ajaxRequest.done(function (response, textStatus, jqXHR) { + $('#ldaptestop').html(response); + }); + } + + $('#testresults').modal('show'); + + test_LDAP(); +}); +</script> +<?php + +} + include("foot.inc"); diff --git a/src/usr/local/www/system_usermanager_settings_test.php b/src/usr/local/www/system_usermanager_settings_test.php deleted file mode 100755 index 983f22a..0000000 --- a/src/usr/local/www/system_usermanager_settings_test.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php -/* - system_usermanager_settings_test.php -*/ -/* ==================================================================== - * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved. - * Copyright (c) 2014 Silvio Giunge <desenvolvimento@bluepex.com> - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution. (http://www.pfsense.org/). - * - * 4. The names "pfSense" and "pfSense Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * coreteam@pfsense.org. - * - * 5. Products derived from this software may not be called "pfSense" - * nor may "pfSense" appear in their names without prior written - * permission of the Electric Sheep Fencing, LLC. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * - * "This product includes software developed by the pfSense Project - * for use in the pfSense software distribution (http://www.pfsense.org/). - * - * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - * ==================================================================== - * - */ - -##|+PRIV -##|*IDENT=page-system-usermanager-settings-testldap -##|*NAME=System: User Manager: Settings: Test LDAP -##|*DESCR=Allow access to the 'System: User Manager: Settings: Test LDAP' page. -##|*MATCH=system_usermanager_settings_test.php* -##|-PRIV - -require("guiconfig.inc"); -require_once("auth.inc"); - -if (isset($config['system']['authserver'][0]['host'])) { - $auth_server = $config['system']['authserver'][0]['host']; - $authserver = $_GET['authserver']; - $authcfg = auth_get_authserver($authserver); -} - -?><!DOCTYPE html> -<html lang="en"> -<head> - <link rel="stylesheet" href="/bootstrap/css/pfSense.css" /> - <link rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" /> - <title><?=gettext("Test Authentication server"); ?></title> -</head> -<body id="system_usermanager_settings_test" class="no-menu"> - <div id="jumbotron"> - <div class="container"> - <div class="col-sm-offset-3 col-sm-6 col-xs-12"> - <pre> -<?php - -if (!$authcfg) { - printf(gettext("Could not find settings for %s%s"), htmlspecialchars($authserver), "<p/>"); -} else { - echo "<b>" . sprintf(gettext("Testing %s LDAP settings... One moment please..."), $g['product_name']) . "</b>"; - - echo "<table>"; - - echo "<tr><td>" . sprintf(gettext("Attempting connection to %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>"); - if (ldap_test_connection($authcfg)) { - echo "<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"; - - echo "<tr><td>" . sprintf(gettext("Attempting bind to %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>"); - if (ldap_test_bind($authcfg)) { - echo "<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"; - - echo "<tr><td>" . sprintf(gettext("Attempting to fetch Organizational Units from %s%s%s"), "<td><center>", htmlspecialchars($auth_server), "</center></td>"); - $ous = ldap_get_user_ous(true, $authcfg); - if (count($ous)>1) { - echo "<td><span class=\"text-center text-success\">" . gettext("OK") . "</span></td></tr>"; - echo "</table>"; - if (is_array($ous)) { - echo "<br/>"; - echo "<b>" . gettext("Organization units found") . "</b>"; - echo "<table width='100%'>"; - foreach ($ous as $ou) { - echo "<tr><td onmouseover=\"this.style.backgroundColor='#ffffff';\" onmouseout=\"this.style.backgroundColor='#dddddd';\">" . $ou . "</td></tr>"; - } - } - } else { - echo "<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"; - } - - echo "</table><p/>"; - - } else { - echo "<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"; - echo "</table><p/>"; - } - } else { - echo "<td><span class=\"text-alert\">" . gettext("failed") . "</span></td></tr>"; - echo "</table><p/>"; - } -} - -?> - </pre> - - <a href="javascript:window.close();" class="btn btn-info"><i class="fa fa-undo icon-embed-btn"></i><?=gettext("Return")?></a> - </div> - </div> - </div> -</body> -</html> |