From: <abe...@us...> - 2013-10-22 00:06:57
|
Revision: 6237 http://sourceforge.net/p/astlinux/code/6237 Author: abelbeck Date: 2013-10-22 00:06:55 +0000 (Tue, 22 Oct 2013) Log Message: ----------- web interface, add LDAP Server support Modified Paths: -------------- branches/1.0/package/webinterface/altweb/admin/edit.php branches/1.0/package/webinterface/altweb/admin/network.php branches/1.0/package/webinterface/altweb/phone-ldap-dir.php Added Paths: ----------- branches/1.0/package/webinterface/altweb/admin/slapd.php Modified: branches/1.0/package/webinterface/altweb/admin/edit.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/edit.php 2013-10-18 23:04:53 UTC (rev 6236) +++ branches/1.0/package/webinterface/altweb/admin/edit.php 2013-10-22 00:06:55 UTC (rev 6237) @@ -30,6 +30,7 @@ 'racoon' => 'Restart IPsec VPN', 'pptpd' => 'Restart PPTP VPN Server', 'ldap' => 'Reload LDAP Client', + 'slapd' => 'Restart LDAP Server', 'snmpd' => 'Restart SNMP Server', 'stunnel' => 'Restart Stunnel Proxy', 'miniupnpd' => 'Restart Univ. Plug\'n\'Play', @@ -51,6 +52,7 @@ 'ntpd.conf' => 'NTP Time Client/Server', 'sshd.conf' => 'SSH Server sshd_config', 'ldap.conf' => 'LDAP Client System Defaults', + 'slapd.conf' => 'LDAP Server Configuration', 'lighttpd.conf' => 'Web Server Configuration', 'sensors.conf' => 'Lm_sensors Hardware Monitoring', 'zaptel.conf' => 'Zaptel System Config', @@ -234,6 +236,8 @@ $result = restartPROCESS($process, 41, $result, 'init'); } elseif ($process === 'FOP2') { $result = restartPROCESS('fop2', 42, $result, 'reload'); + } elseif ($process === 'slapd') { + $result = restartPROCESS($process, 43, $result, 'init'); } elseif ($process === 'cron') { $result = updateCRON('root', 30, $result); } @@ -358,6 +362,8 @@ putHtml('<p style="color: green;">Asterisk Flash Operating Panel2 has Restarted.</p>'); } elseif ($result == 42) { putHtml('<p style="color: green;">Asterisk Flash Operating Panel2 has been Reloaded.</p>'); + } elseif ($result == 43) { + putHtml('<p style="color: green;">LDAP Server has Restarted.</p>'); } elseif ($result == 99) { putHtml('<p style="color: red;">Action Failed.</p>'); } elseif ($result == 999) { Modified: branches/1.0/package/webinterface/altweb/admin/network.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/network.php 2013-10-18 23:04:53 UTC (rev 6236) +++ branches/1.0/package/webinterface/altweb/admin/network.php 2013-10-22 00:06:55 UTC (rev 6237) @@ -32,6 +32,7 @@ // 01-28-2012, Added LOCALDNS_LOCAL_DOMAIN support // 07-07-2012, Added Universal Plug & Play support // 09-23-2013, Added ddclient support +// 10-21-2013, Added LDAP server support // // System location of rc.conf file $CONFFILE = '/etc/rc.conf'; @@ -824,6 +825,14 @@ $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); header('Location: /admin/siptlscert.php'); exit; + } elseif (isset($_POST['submit_slapd'])) { + $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); + if (is_writable($file = '/mnt/kd/slapd.conf')) { + header('Location: /admin/edit.php?file='.$file); + } else { + header('Location: /admin/slapd.php'); + } + exit; } elseif (isset($_POST['submit_xmpp'])) { $result = saveNETWORKsettings($NETCONFDIR, $NETCONFFILE); header('Location: /admin/xmpp.php'); @@ -953,6 +962,8 @@ $result = restartPROCESS($process, 41, $result, 'init'); } elseif ($process === 'FOP2') { $result = restartPROCESS('fop2', 42, $result, 'reload'); + } elseif ($process === 'slapd') { + $result = restartPROCESS($process, 43, $result, 'init'); } } else { $result = 2; @@ -1035,6 +1046,8 @@ putHtml('<p style="color: green;">Asterisk Flash Operating Panel2 has Restarted.</p>'); } elseif ($result == 42) { putHtml('<p style="color: green;">Asterisk Flash Operating Panel2 has been Reloaded.</p>'); + } elseif ($result == 43) { + putHtml('<p style="color: green;">LDAP Server has Restarted.</p>'); } elseif ($result == 99) { putHtml('<p style="color: red;">Action Failed.</p>'); } elseif ($result == 100) { @@ -1114,6 +1127,8 @@ putHtml('<option value="pptpd"'.$sel.'>Restart PPTP VPN Server</option>'); $sel = ($reboot_restart === 'ldap') ? ' selected="selected"' : ''; putHtml('<option value="ldap"'.$sel.'>Reload LDAP Client</option>'); + $sel = ($reboot_restart === 'slapd') ? ' selected="selected"' : ''; + putHtml('<option value="slapd"'.$sel.'>Restart LDAP Server</option>'); $sel = ($reboot_restart === 'snmpd') ? ' selected="selected"' : ''; putHtml('<option value="snmpd"'.$sel.'>Restart SNMP Server</option>'); $sel = ($reboot_restart === 'stunnel') ? ' selected="selected"' : ''; @@ -1507,6 +1522,11 @@ putHtml('XMPP Server, Messaging and Presence:'); putHtml('<input type="submit" value="Configure XMPP" name="submit_xmpp" class="button" /></td></tr>'); + if (is_file('/etc/init.d/slapd')) { + putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); + putHtml('LDAP Server, Directory Information:'); + putHtml('<input type="submit" value="Configure LDAP Server" name="submit_slapd" class="button" /></td></tr>'); + } if (is_file('/etc/init.d/snmpd') && is_file('/mnt/kd/snmp/snmpd.conf')) { putHtml('<tr class="dtrow1"><td style="text-align: left;" colspan="6">'); putHtml('SNMP Agent Server:'); Added: branches/1.0/package/webinterface/altweb/admin/slapd.php =================================================================== --- branches/1.0/package/webinterface/altweb/admin/slapd.php (rev 0) +++ branches/1.0/package/webinterface/altweb/admin/slapd.php 2013-10-22 00:06:55 UTC (rev 6237) @@ -0,0 +1,194 @@ +<?php + +// Copyright (C) 2013 Lonnie Abelbeck +// This is free software, licensed under the GNU General Public License +// version 3 as published by the Free Software Foundation; you can +// redistribute it and/or modify it under the terms of the GNU +// General Public License; and comes with ABSOLUTELY NO WARRANTY. + +// slapd.php for AstLinux +// 10-21-2013 +// +// System location of rc.conf file +$CONFFILE = '/etc/rc.conf'; +// System location of /mnt/kd/rc.conf.d directory +$SLAPDCONFDIR = '/mnt/kd/rc.conf.d'; +// System location of gui.slapd.conf file +$SLAPDCONFFILE = '/mnt/kd/rc.conf.d/gui.slapd.conf'; + +$myself = $_SERVER['PHP_SELF']; + +require_once '../common/functions.php'; + +$anonymous_menu = array ( + 'localhost' => 'localhost only', + 'yes' => 'access enabled', + 'no' => 'access disabled' +); + +// Function: saveSLAPDsettings +// +function saveSLAPDsettings($conf_dir, $conf_file) { + $result = 11; + + if (! is_dir($conf_dir)) { + return(3); + } + if (($fp = @fopen($conf_file,"wb")) === FALSE) { + return(3); + } + fwrite($fp, "### gui.slapd.conf - start ###\n###\n"); + + $value = 'LDAP_SERVER="'.$_POST['slapd_enabled'].'"'; + fwrite($fp, "### LDAP Server Enabled\n".$value."\n"); + + $value = 'LDAP_SERVER_ANONYMOUS="'.$_POST['slapd_anonymous'].'"'; + fwrite($fp, "### LDAP Server Anonymous\n".$value."\n"); + + $value = 'LDAP_SERVER_BASEDN="'.tuq($_POST['slapd_basedn']).'"'; + fwrite($fp, "### LDAP Server Base DN\n".$value."\n"); + + $value = 'LDAP_SERVER_PASS="'.string2RCconfig(trim($_POST['slapd_admin_pass'])).'"'; + fwrite($fp, "### LDAP Server Password\n".$value."\n"); + + fwrite($fp, "### gui.slapd.conf - end ###\n"); + fclose($fp); + + return($result); +} + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $result = 1; + if (! $global_admin) { + $result = 999; + } elseif (isset($_POST['submit_save'])) { + $result = saveSLAPDsettings($SLAPDCONFDIR, $SLAPDCONFFILE); + } elseif (isset($_POST['submit_restart'])) { + $result = 99; + if (isset($_POST['confirm_restart'])) { + $result = restartPROCESS('slapd', 10, $result, 'init'); + } else { + $result = 2; + } + } elseif (isset($_POST['submit_sip_tls'])) { + $result = saveSLAPDsettings($SLAPDCONFDIR, $SLAPDCONFFILE); + header('Location: /admin/siptlscert.php'); + exit; + } + header('Location: '.$myself.'?result='.$result); + exit; +} else { // Start of HTTP GET +$ACCESS_RIGHTS = 'admin'; +require_once '../common/header.php'; + + if (is_file($SLAPDCONFFILE)) { + $db = parseRCconf($SLAPDCONFFILE); + } else { + $db = NULL; + } + + putHtml("<center>"); + if (isset($_GET['result'])) { + $result = $_GET['result']; + if ($result == 2) { + putHtml('<p style="color: red;">No Action, check "Confirm" for this action.</p>'); + } elseif ($result == 3) { + putHtml('<p style="color: red;">Error creating file.</p>'); + } elseif ($result == 10) { + putHtml('<p style="color: green;">LDAP Server has Restarted.</p>'); + } elseif ($result == 11) { + putHtml('<p style="color: green;">Settings saved, click "Restart LDAP" to apply any changed settings.</p>'); + } elseif ($result == 99) { + putHtml('<p style="color: red;">Action Failed.</p>'); + } elseif ($result == 999) { + putHtml('<p style="color: red;">Permission denied for user "'.$global_user.'".</p>'); + } else { + putHtml('<p style="color: orange;">No Action.</p>'); + } + } else { + putHtml('<p> </p>'); + } + putHtml("</center>"); +?> + <center> + <table class="layout"><tr><td><center> + <form method="post" action="<?php echo $myself;?>"> + <table width="100%" class="stdtable"> + <tr><td style="text-align: center;" colspan="2"> + <h2>LDAP Server Configuration:</h2> + </td></tr><tr><td width="240" style="text-align: center;"> + <input type="submit" class="formbtn" value="Save Settings" name="submit_save" /> + </td><td class="dialogText" style="text-align: center;"> + <input type="submit" class="formbtn" value="Restart LDAP" name="submit_restart" /> + – + <input type="checkbox" value="restart" name="confirm_restart" /> Confirm + </td></tr></table> + <table class="stdtable"> + <tr class="dtrow0"><td width="60"> </td><td width="100"> </td><td width="100"> </td><td> </td><td width="100"> </td><td width="80"> </td></tr> +<?php +if (! is_file('/mnt/kd/ssl/sip-tls/keys/server.crt') || ! is_file('/mnt/kd/ssl/sip-tls/keys/server.key')) { + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>Missing SIP-TLS Server Certificate:</strong> <i>(Shared with LDAP Server)</i>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Create SIP-TLS<br />Server Certificate:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + putHtml('<input type="submit" value="SIP-TLS Certificate" name="submit_sip_tls" class="button" />'); + putHtml('</td></tr>'); +} + + putHtml('<tr class="dtrow0"><td class="dialogText" style="text-align: left;" colspan="6">'); + putHtml('<strong>LDAP Directory Server:</strong>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('LDAP Server:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $slapd_enable = getVARdef($db, 'LDAP_SERVER'); + putHtml('<select name="slapd_enabled">'); + putHtml('<option value="no">disabled</option>'); + $sel = ($slapd_enable === 'yes') ? ' selected="selected"' : ''; + putHtml('<option value="yes"'.$sel.'>enabled</option>'); + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Anonymous Read-Only:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $anonymous = getVARdef($db, 'LDAP_SERVER_ANONYMOUS'); + putHtml('<select name="slapd_anonymous">'); + foreach ($anonymous_menu as $key => $value) { + $sel = ($anonymous === $key) ? ' selected="selected"' : ''; + putHtml('<option value="'.$key.'"'.$sel.'>'.$value.'</option>'); + } + putHtml('</select>'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Base DN:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + if (($value = getVARdef($db, 'LDAP_SERVER_BASEDN')) === '') { + $value = 'dc=ldap'; + } + putHtml('<input type="text" size="56" maxlength="128" name="slapd_basedn" value="'.$value.'" />'); + putHtml('</td></tr>'); + + putHtml('<tr class="dtrow1"><td style="text-align: right;" colspan="2">'); + putHtml('Admin Password<br />cn=admin:'); + putHtml('</td><td style="text-align: left;" colspan="4">'); + $value = getVARdef($db, 'LDAP_SERVER_PASS'); + $value = htmlspecialchars(RCconfig2string($value)); + putHtml('<input type="password" size="56" maxlength="128" name="slapd_admin_pass" value="'.$value.'" />'); + putHtml('<i><br />(defaults to web interface "admin" password)</i>'); + putHtml('</td></tr>'); + + putHtml('</table>'); + putHtml('</form>'); + + putHtml('</center></td></tr></table>'); + putHtml('</center>'); +} // End of HTTP GET +require_once '../common/footer.php'; + +?> Property changes on: branches/1.0/package/webinterface/altweb/admin/slapd.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: branches/1.0/package/webinterface/altweb/phone-ldap-dir.php =================================================================== --- branches/1.0/package/webinterface/altweb/phone-ldap-dir.php 2013-10-18 23:04:53 UTC (rev 6236) +++ branches/1.0/package/webinterface/altweb/phone-ldap-dir.php 2013-10-22 00:06:55 UTC (rev 6237) @@ -154,7 +154,7 @@ $name = $opts['search']; $filter = "(|(sn=$name*)(givenname=$name*))"; - $justthese = array('cn', 'sn', 'givenname', 'displayname', 'telephonenumber', 'mobile', 'cellphone'); + $justthese = array('cn', 'sn', 'givenname', 'displayname', 'telephonenumber', 'mobile', 'cellphone', 'homephone'); if (($sr = ldap_search($ldapconn, $dn, $filter, $justthese)) !== FALSE) { ldap_sort($ldapconn, $sr, 'givenname'); @@ -169,6 +169,8 @@ ; } elseif (($number = $info[$i]['cellphone'][0]) != '') { ; + } elseif (($number = $info[$i]['homephone'][0]) != '') { + ; } if ($number != '') { $number = extract_dialing_digits($number, $opts['type']); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |