allow to set the host name (RFE 2898948)
This commit is contained in:
parent
b0e57a1de9
commit
b2c358c770
|
@ -227,6 +227,12 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
);
|
);
|
||||||
// upload fields
|
// upload fields
|
||||||
$return['upload_columns'] = array(
|
$return['upload_columns'] = array(
|
||||||
|
array(
|
||||||
|
'name' => 'dhcp_settings_host-name',
|
||||||
|
'description' => _('Host name'),
|
||||||
|
'help' => 'host-name',
|
||||||
|
'example' => _('server01'),
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'name' => 'dhcp_settings_subnet',
|
'name' => 'dhcp_settings_subnet',
|
||||||
'description' => _('Subnet'),
|
'description' => _('Subnet'),
|
||||||
|
@ -327,6 +333,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
$this->messages['domainname'][4] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name needs to have at least 3 characters.'));
|
$this->messages['domainname'][4] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name needs to have at least 3 characters.'));
|
||||||
$this->messages['domainname'][5] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".'));
|
$this->messages['domainname'][5] = array('ERROR', _('Account %s:') . ' dhcp_settings_domainName', _('The domain name includes invalid characters. Valid characters are A-Z, a-z, 0-9, ".", "_","-".'));
|
||||||
$this->messages['host-name'][0] = array('ERROR', _('Host name'), _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !'));
|
$this->messages['host-name'][0] = array('ERROR', _('Host name'), _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !'));
|
||||||
|
$this->messages['host-name'][1] = array('ERROR', _('Account %s:') . ' dhcp_settings_host-name', _('Host name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function returns an array with 4 entries:
|
/* This function returns an array with 4 entries:
|
||||||
|
@ -404,7 +411,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
$errors[] = $this->messages['domainname'][2];
|
$errors[] = $this->messages['domainname'][2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->setDHCPOption('domain-name', $_POST['domainname']);
|
$this->setDHCPOption('domain-name', '"' . $_POST['domainname'] . '"');
|
||||||
|
|
||||||
// Check DNS
|
// Check DNS
|
||||||
if (!empty($_POST['dns'])) {
|
if (!empty($_POST['dns'])) {
|
||||||
|
@ -477,6 +484,13 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
$this->setDHCPOption('netbios-node-type', $_POST['netbios_node_type']);
|
$this->setDHCPOption('netbios-node-type', $_POST['netbios_node_type']);
|
||||||
|
|
||||||
if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) {
|
if ($this->getAccountContainer()->dn_orig!=$_SESSION['config']->get_suffix('dhcp')) {
|
||||||
|
// check host name
|
||||||
|
if ($_POST['host-name'] != '') {
|
||||||
|
if (!get_preg($_POST['host-name'], 'hostname')) {
|
||||||
|
$errors[] = $this->messages['host-name'][0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->setDHCPOption('host-name', '"' . $_POST['host-name'] . '"');
|
||||||
// Check subnet
|
// Check subnet
|
||||||
$_POST['subnet'] = trim($_POST['subnet']);
|
$_POST['subnet'] = trim($_POST['subnet']);
|
||||||
if (!check_ip($_POST['subnet'], true)) {
|
if (!check_ip($_POST['subnet'], true)) {
|
||||||
|
@ -535,12 +549,6 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// host name
|
|
||||||
$return[] = array(
|
|
||||||
array('kind' => 'text', 'text' => _('Host name') . ": "),
|
|
||||||
array('kind' => 'input', 'name' => 'host-name', 'value' => $this->getDHCPOption('host-name')),
|
|
||||||
array('kind' => 'help', 'value' => 'host-name'));
|
|
||||||
|
|
||||||
// Subnet name
|
// Subnet name
|
||||||
if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) {
|
if ($_SESSION['config']->get_suffix('dhcp') == $this->getAccountContainer()->dn_orig) {
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
|
@ -549,7 +557,12 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
array('kind' => 'help', 'value' => 'subnet'));
|
array('kind' => 'help', 'value' => 'subnet'));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
// host name
|
||||||
$return[] = array(
|
$return[] = array(
|
||||||
|
array('kind' => 'text', 'text' => _('Host name') . ": "),
|
||||||
|
array('kind' => 'input', 'name' => 'host-name', 'value' => $this->getDHCPOption('host-name')),
|
||||||
|
array('kind' => 'help', 'value' => 'host-name'));
|
||||||
|
$return[] = array(
|
||||||
array('kind' => 'text', 'text' => _('Subnet') . ":* "),
|
array('kind' => 'text', 'text' => _('Subnet') . ":* "),
|
||||||
array('kind' => 'input', 'name' => 'cn', 'value' => $this->attributes['cn'][0]),
|
array('kind' => 'input', 'name' => 'cn', 'value' => $this->attributes['cn'][0]),
|
||||||
array('kind' => 'help', 'value' => 'subnet'),
|
array('kind' => 'help', 'value' => 'subnet'),
|
||||||
|
@ -696,7 +709,7 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
* @param String $name option name
|
* @param String $name option name
|
||||||
* @return String value
|
* @return String value
|
||||||
*/
|
*/
|
||||||
private function getDHCPOption($name) {
|
public function getDHCPOption($name) {
|
||||||
$return = null;
|
$return = null;
|
||||||
if (is_array($this->attributes['dhcpOption'])) {
|
if (is_array($this->attributes['dhcpOption'])) {
|
||||||
for ($i = 0; $i < sizeof($this->attributes['dhcpOption']); $i++) {
|
for ($i = 0; $i < sizeof($this->attributes['dhcpOption']); $i++) {
|
||||||
|
@ -821,6 +834,17 @@ By default, the nodes are configured as H-Nodes which fits for small networks. I
|
||||||
// add object class
|
// add object class
|
||||||
if (!in_array("dhcpOptions", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpOptions";
|
if (!in_array("dhcpOptions", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpOptions";
|
||||||
if (!in_array("dhcpSubnet", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpSubnet";
|
if (!in_array("dhcpSubnet", $partialAccounts[$i]['objectClass'])) $partialAccounts[$i]['objectClass'][] = "dhcpSubnet";
|
||||||
|
// host name
|
||||||
|
if ($rawAccounts[$i][$ids['dhcp_settings_host-name']] != '') {
|
||||||
|
if (get_preg($rawAccounts[$i][$ids['dhcp_settings_host-name']], 'hostname')) {
|
||||||
|
$partialAccounts[$i]['dhcpOption'][] = 'host-name "' . $rawAccounts[$i][$ids['dhcp_settings_host-name']] . '"';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$error = $this->messages['host-name'][1];
|
||||||
|
array_push($error, $i);
|
||||||
|
$messages[] = $error;
|
||||||
|
}
|
||||||
|
}
|
||||||
// subnet
|
// subnet
|
||||||
if (check_ip($rawAccounts[$i][$ids['dhcp_settings_subnet']],true)) {
|
if (check_ip($rawAccounts[$i][$ids['dhcp_settings_subnet']],true)) {
|
||||||
$partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['dhcp_settings_subnet']];
|
$partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['dhcp_settings_subnet']];
|
||||||
|
|
Loading…
Reference in New Issue