1,7 → 1,7 |
<?php |
# $Id$ |
|
/* written by steweb57 & Rexy */ |
/* written by steweb57, Rexy & Tom HOUDAYER */ |
/**************************************************************** |
* GLOBAL FILE PATHS * |
*****************************************************************/ |
210,7 → 210,7 |
// LDAP configuration params |
$ldap_status = ($conf['LDAP'] === 'on'); |
$ldap_server = $conf['LDAP_SERVER']; |
$ldap_identity = $conf['LDAP_USER']; |
$ldap_user = $conf['LDAP_USER']; |
$ldap_password = $conf['LDAP_PASSWORD']; |
$ldap_base_dn = $conf['LDAP_BASE']; |
$ldap_filter = $conf['LDAP_UID']; |
229,9 → 229,47 |
$new_ldap_server = $ldap_server; |
} |
if ($ldap_status) { |
$serverCheckResult = ldap_checkServerConfig($new_ldap_server, $ldap_identity, $ldap_password, $ldap_base_dn, $ldap_filter); |
$serverCheckResult = ldap_checkServerConfig($new_ldap_server, $ldap_user, $ldap_password, $ldap_base_dn, $ldap_filter); |
} |
|
// AJAX LDAP configuration checker |
if (isset($_GET['conf_check'])) { |
$response = [ |
'enable' => $ldap_status |
]; |
if ($ldap_status || ($_SERVER['REQUEST_METHOD'] === 'POST')) { |
$varErrors = []; |
if ($_SERVER['REQUEST_METHOD'] === 'POST') { |
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'); |
} |
} |
|
$response['result'] = (ldap_checkServerConfig($ldap_server, $ldap_user, $ldap_password, $ldap_base_dn, $ldap_filter) > 0); |
|
if (!empty($varErrors)) { |
$response['errors'] = $varErrors; |
} |
} |
|
header('Content-Type: application/json'); |
echo json_encode($response); |
exit(); |
} |
|
?> |
<!DOCTYPE html> |
<html> |
245,7 → 283,7 |
function onLdapStatusChange() { |
var listToDisables = ['ldap_server', 'ldap_dn', 'ldap_filter', 'ldap_base_filter', 'ldap_user', 'ldap_password']; |
|
if (document.getElementById("auth_enable").value === '1') { |
if (document.getElementById('auth_enable').value === '1') { |
for (var i=0; i<listToDisables.length; i++) { |
document.getElementById(listToDisables[i]).style.backgroundColor = '#ffffff'; |
document.getElementById(listToDisables[i]).disabled = false; |
257,6 → 295,48 |
} |
} |
} |
|
function checkConfig() { |
var ldap_config = { |
ldap_status: (document.getElementById('auth_enable').value === '1'), |
ldap_server: document.getElementById('ldap_server').value, |
ldap_user: document.getElementById('ldap_user').value, |
ldap_password: document.getElementById('ldap_password').value, |
ldap_base_dn: document.getElementById('ldap_dn').value, |
ldap_filter: document.getElementById('ldap_filter').value, |
ldap_base_filter: document.getElementById('ldap_base_filter').value |
}; |
|
console.log(ldap_config); |
|
var params = Object.keys(ldap_config).map( function (k) { return encodeURIComponent(k) + '=' + encodeURIComponent(ldap_config[k]) } ).join('&'); |
|
var xhr = new XMLHttpRequest(); |
xhr.onreadystatechange = function() { |
if (this.readyState == 4) { |
if (this.status == 200) { |
var data = JSON.parse(this.responseText); |
|
if (data.result === true) { |
alert('Configuration valide'); |
} else { |
alert('Configuration non valide'); |
} |
|
if (typeof data.errors !== 'undefined') { |
alert(data.errors.join("\n")); |
} |
|
console.log(data) |
} else { |
console.log(this.responseText) |
} |
} |
}; |
xhr.open('POST', 'ldap.php?conf_check', true); |
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); |
xhr.send(params); |
} |
</script> |
</head> |
<body onLoad="onLdapStatusChange();"> |
343,7 → 423,7 |
<?= $l_ldap_user_text ?> |
</dt> |
<dd> |
<input id="ldap_user" size="40" name="ldap_user" value="<?= htmlspecialchars($ldap_identity) ?>"> |
<input id="ldap_user" size="40" name="ldap_user" value="<?= htmlspecialchars($ldap_user) ?>"> |
</dd> |
</dl> |
<dl> |
358,6 → 438,7 |
<p> |
<input id="submit" type="submit" value="<?= $l_ldap_submit ?>" name="submit"> |
<input id="reset" type="reset" value="<?= $l_ldap_reset ?>" name="reset"> |
<button onclick="checkConfig(); return false;">Check [BETA]</button> |
</p> |
</fieldset> |
</form> |