Subversion Repositories ALCASAR

Compare Revisions

Ignore whitespace Rev 2450 → Rev 2451

/web/acc/admin/update_ldap.php
File deleted
/web/acc/admin/ldap.php
103,27 → 103,6
}
 
 
$message = '';
if ((isset($_GET['erreur'])) && (!empty($_GET['erreur']))) {
$message = '<div style="text-align: center"><br>';
$message .= '<span style="font-weight: bold; color: red;">'.htmlspecialchars($erreur).'</span><br>';
$message .= '<br></div>';
} else if (isset($_GET['update']) && ($_GET['update'] === 'ok')) {
$message = '<div style="text-align: center"><br>';
$message .= '<span style="font-weight: bold; color: green;">'.$l_ldap_update_sucess.'</span><br>';
$message .= '<br></div>';
}
 
// LDAP configuration params
$ldap_status = ($conf['LDAP'] === 'on');
$ldap_server = $conf['LDAP_SERVER'];
$ldap_identity = $conf['LDAP_USER'];
$ldap_password = $conf['LDAP_PASSWORD'];
$ldap_basedn = $conf['LDAP_BASE'];
$ldap_filter = $conf['LDAP_UID'];
$ldap_base_filter = $conf['LDAP_FILTER'];
 
 
function ldap_checkServerConfig($f_ldap_server, $f_ldap_identity, $f_ldap_password, $f_ldap_basedn, $f_ldap_filter, $f_ldap_port = 389) {
// Test connect to the LDAP server
if (!$sock = @fsockopen($f_ldap_server, $f_ldap_port, $num, $error, 2)) {
162,6 → 141,81
}
}
 
$messages = '';
 
if (isset($_POST['auth_enable'])) {
if ($_POST['auth_enable'] === '1') {
$varErrors = [];
if (isset($_POST['ldap_server'])) $ldap_server = $_POST['ldap_server']; else array_push($varErrors, 'Variable error "ldap_server"');
if (isset($_POST['ldap_base_dn'])) $ldap_base_dn = $_POST['ldap_base_dn']; else array_push($varErrors, 'Variable error "ldap_base_dn"');
if (isset($_POST['ldap_filter'])) $ldap_filter = $_POST['ldap_filter']; else array_push($varErrors, 'Variable error "ldap_filter"');
if (isset($_POST['ldap_base_filter'])) $ldap_base_filter = $_POST['ldap_base_filter']; else array_push($varErrors, 'Variable error "ldap_base_filter"');
if (isset($_POST['ldap_user'])) $ldap_user = $_POST['ldap_user']; else array_push($varErrors, 'Variable error "ldap_user"');
if (isset($_POST['ldap_password'])) $ldap_password = $_POST['ldap_password']; else array_push($varErrors, 'Variable error "ldap_password"');
 
// Validation
if (isset($ldap_server)) {
if ((!preg_match('/^([0-9]{1,3}\.){3}([0-9]{1,3})$/', $ldap_server)) && (preg_match('/^[a-zA-Z0-9-_.]+$/', $ldap_server))) {
$ldap_server = gethostbyname($ldap_server);
}
if (!preg_match('/^([0-9]{1,3}\.){3}([0-9]{1,3})$/', $ldap_server)) {
array_push($varErrors, 'Invalid LDAP server IP');
}
}
 
if (!empty($varErrors)) {
$messages .= '<div style="text-align: center"><br>';
foreach ($varErrors as $error) {
$messages .= '<span style="font-weight: bold; color: red;">'.$error.'</span><br>';
}
$messages .= '<br></div>';
} else {
exec('sed -i \'s/^LDAP=.*/LDAP=on/g\' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_SERVER=.*/LDAP_SERVER=$ldap_server/g").' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_BASE=.*/LDAP_BASE=$ldap_base_dn/g").' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_UID=.*/LDAP_UID=$ldap_filter/g").' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_FILTER=.*/LDAP_FILTER=$ldap_filter/g").' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_USER=.*/LDAP_USER=$ldap_user/g").' '.CONF_FILE);
exec('sed -i '.escapeshellarg("s/^LDAP_PASSWORD=.*/LDAP_PASSWORD=$ldap_password/g").' '.CONF_FILE);
exec('sudo /usr/local/bin/alcasar-ldap.sh --on');
 
$messages .= '<div style="text-align: center"><br>';
$messages .= '<span style="font-weight: bold; color: green;">'.$l_ldap_update_sucess.'</span><br>';
$messages .= '<br></div>';
}
} else {
exec('sed -i "s/^LDAP=.*/LDAP=off/g" '.CONF_FILE);
exec('sudo /usr/local/bin/alcasar-ldap.sh --off');
 
$messages .= '<div style="text-align: center"><br>';
$messages .= '<span style="font-weight: bold; color: green;">'.$l_ldap_update_sucess.'</span><br>';
$messages .= '<br></div>';
}
 
// Reload configuration
$file_conf = fopen(CONF_FILE, 'r');
if (!$file_conf) {
exit('Error opening the file '.CONF_FILE);
}
while (!feof($file_conf)) {
$buffer = fgets($file_conf, 4096);
if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
$tmp = explode('=', $buffer, 2);
$conf[trim($tmp[0])] = trim($tmp[1]);
}
}
fclose($file_conf);
}
 
// LDAP configuration params
$ldap_status = ($conf['LDAP'] === 'on');
$ldap_server = $conf['LDAP_SERVER'];
$ldap_identity = $conf['LDAP_USER'];
$ldap_password = $conf['LDAP_PASSWORD'];
$ldap_basedn = $conf['LDAP_BASE'];
$ldap_filter = $conf['LDAP_UID'];
$ldap_base_filter = $conf['LDAP_FILTER'];
 
// TODO : check LDAP PHP extension loaded?
// if (!extension_loaded('ldap')) {
// exit();
209,10 → 263,10
<div class="panel">
<div class="panel-header"><?= $l_ldap_legend ?></div>
<div class="panel-body">
<form name="config_ldap" method="post" action="update_ldap.php">
<form name="config_ldap" method="POST" action="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>">
<fieldset>
<legend>
<?= $message ?>
<?= $messages ?>
<?php if ($ldap_status): ?>
<div style="text-align: center"><br>
<?php if ($serverCheckResult === -2): ?>