mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
Adding LDAP Authentication container picker.
Work sponsored-by: Centipede Networks
This commit is contained in:
parent
cc8b82d914
commit
073115bc29
@ -743,6 +743,8 @@ function ldap_get_groups($username) {
|
||||
|
||||
$info = ldap_get_entries($ldap, $search);
|
||||
|
||||
$memberof = array();
|
||||
|
||||
if(is_array($info[0]['memberof'])) {
|
||||
foreach($info[0]['memberof'] as $member) {
|
||||
if(strstr($member, "CN=") !== false) {
|
||||
|
||||
@ -212,7 +212,8 @@ if(!$pconfig['backend'])
|
||||
<tr>
|
||||
<td width="22%" valign="top" class="vncell">LDAP Authentication containers</td>
|
||||
<td width="78%" class="vtable">
|
||||
<input name="ldapauthcontainers" size="65" value="<?=htmlspecialchars($pconfig['ldapauthcontainers']);?>">
|
||||
<input name="ldapauthcontainers" size="65" value="<?=htmlspecialchars($pconfig['ldapauthcontainers']);?>">
|
||||
<a href="javascript:if(openwindow('system_usermanager_settings_ldapacpicker.php') == false) alert('Popup blocker detected. Action aborted.');" >Select</a>
|
||||
<br/>NOTE: Comma separated.
|
||||
<br/>EXAMPLE: CN=Users,DC=pfsense,DC=com;CN=OtherUsers,DC=pfsense,DC=com
|
||||
</td>
|
||||
@ -233,3 +234,13 @@ if(!$pconfig['backend'])
|
||||
<?php include("fend.inc");?>
|
||||
</body>
|
||||
</html>
|
||||
<script language="javascript">
|
||||
function openwindow(url) {
|
||||
var oWin = window.open(url,"pfSensePop","width=620,height=400,top=150,left=150");
|
||||
if (oWin==null || typeof(oWin)=="undefined") {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
85
usr/local/www/system_usermanager_settings_ldapacpicker.php
Normal file
85
usr/local/www/system_usermanager_settings_ldapacpicker.php
Normal file
@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/* $Id$ */
|
||||
/*
|
||||
part of pfSense (http://www.pfsense.org/)
|
||||
|
||||
Copyright (C) 2007 Scott Ullrich <sullrich@gmail.com>
|
||||
All rights reserved.
|
||||
|
||||
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.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS 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
|
||||
AUTHOR 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.
|
||||
*/
|
||||
|
||||
require("guiconfig.inc");
|
||||
|
||||
if($_POST) {
|
||||
print_r($_POST);
|
||||
$ous = ldap_get_user_ous(true);
|
||||
$values = "";
|
||||
$isfirst = true;
|
||||
foreach($ous as $ou) {
|
||||
if(in_array($ou, $_POST['ou'])) {
|
||||
if($isfirst == false)
|
||||
$values .= ";";
|
||||
$isfirst = false;
|
||||
$values .= $ou;
|
||||
}
|
||||
}
|
||||
echo "<script language=\"JavaScript\">\n";
|
||||
echo "<!--\n";
|
||||
echo " opener.document.forms[0].ldapauthcontainers.value='$values'\n";
|
||||
echo " this.close();\n";
|
||||
echo "-->\n";
|
||||
echo "</script>\n";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<html>
|
||||
<body link="#000000" vlink="#000000" alink="#000000" onload="<?= $jsevents["body"]["onload"] ?>">
|
||||
<form method="post" action="system_usermanager_settings_ldapacpicker.php">
|
||||
<b>Please select which containers to Authenticate against:</b>
|
||||
<p/>
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="tabnavtbl">
|
||||
<?php
|
||||
$ous = ldap_get_user_ous(true);
|
||||
$pconfig['ldapauthcontainers'] = split(";",$config['system']['webgui']['ldapauthcontainers']);
|
||||
foreach($ous as $ou) {
|
||||
if(in_array($ou, $pconfig['ldapauthcontainers']))
|
||||
$CHECKED=" CHECKED";
|
||||
else
|
||||
$CHECKED="";
|
||||
echo "<input type='checkbox' value='{$ou}' name='ou[]'{$CHECKED}> {$ou}<br/>\n";
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p/>
|
||||
|
||||
<input type='submit' value='Save'>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -33,8 +33,8 @@ require("guiconfig.inc");
|
||||
$ldapserver = $config['system']['webgui']['ldapserver'];
|
||||
$ldapbindun = $config['system']['webgui']['ldapbindun'];
|
||||
$ldapbindpw = $config['system']['webgui']['ldapbindpw'];
|
||||
|
||||
$ldapfilter = $config['system']['webgui']['ldapfilter'];
|
||||
|
||||
?>
|
||||
|
||||
<html>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user