Skip to content

Commit b79d0c6

Browse files
author
Till Brehm
committed
Merge branch 'master' into 'master'
Add DNS CAA Records to Interface (#4449) See merge request !596
2 parents 552e5b1 + 96b7094 commit b79d0c6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+1541
-2
lines changed

install/sql/incremental/upd_dev_collection.sql

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,31 @@ CHANGE `spam_modifies_subj` `spam_modifies_subj` ENUM('N','Y') CHARACTER SET utf
2929
CHANGE `warnvirusrecip` `warnvirusrecip` ENUM('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
3030
CHANGE `warnbannedrecip` `warnbannedrecip` ENUM('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N',
3131
CHANGE `warnbadhrecip` `warnbadhrecip` ENUM('N','Y') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'N';
32+
33+
CREATE TABLE IF NOT EXISTS `dns_ssl_ca` (
34+
`id` int(10) unsigned NOT AUTO_INCREMENT,
35+
`sys_userid` int(11) unsigned NOT NULL DEFAULT '0',
36+
`sys_groupid` int(11) unsigned NOT NULL DEFAULT '0',
37+
`sys_perm_user` varchar(5) NOT NULL DEFAULT '',
38+
`sys_perm_group` varchar(5) NOT NULL DEFAULT '',
39+
`sys_perm_other` varchar(5) NOT NULL DEFAULT '',
40+
`active` enum('N','Y') NOT NULL DEFAULT 'N',
41+
`ca_name` varchar(255) NOT NULL DEFAULT '',
42+
`ca_issue` varchar(255) NOT NULL DEFAULT '',
43+
`ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N',
44+
`ca_iodef` text NOT NULL,
45+
`ca_critical` tinyint(1) NOT NULL DEFAULT '0'
46+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
47+
48+
INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES
49+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Comodo', 'comodoca.com', 'Y', '', 0),
50+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0),
51+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0),
52+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GeoTrust (Symantec)', 'geotrust.com', 'Y', '', 0),
53+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0),
54+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'N', '', 0),
55+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec', 'symantec.com', 'Y', '', 0),
56+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Thawte (Symantec)', 'thawte.com', 'Y', '', 0),
57+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0);
58+
59+
ALTER TABLE `dns_rr` CHANGE `type` `type` ENUM('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

install/sql/ispconfig3.sql

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ CREATE TABLE `dns_rr` (
489489
`server_id` int(11) NOT NULL default '1',
490490
`zone` int(11) unsigned NOT NULL DEFAULT '0',
491491
`name` varchar(255) NOT NULL DEFAULT '',
492-
`type` enum('A','AAAA','ALIAS','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL,
492+
`type` enum('A','AAAA','ALIAS','CAA','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') default NULL,
493493
`data` TEXT NOT NULL,
494494
`aux` int(11) unsigned NOT NULL default '0',
495495
`ttl` int(11) unsigned NOT NULL default '3600',
@@ -500,6 +500,39 @@ CREATE TABLE `dns_rr` (
500500
KEY `rr` (`zone`,`type`,`name`)
501501
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
502502

503+
-- --------------------------------------------------------
504+
505+
--
506+
-- Table structure for table `dns_ssl_ca`
507+
--
508+
509+
CREATE TABLE IF NOT EXISTS `dns_ssl_ca` (
510+
`id` int(10) unsigned NOT AUTO_INCREMENT,
511+
`sys_userid` int(11) unsigned NOT NULL DEFAULT '0',
512+
`sys_groupid` int(11) unsigned NOT NULL DEFAULT '0',
513+
`sys_perm_user` varchar(5) NOT NULL DEFAULT '',
514+
`sys_perm_group` varchar(5) NOT NULL DEFAULT '',
515+
`sys_perm_other` varchar(5) NOT NULL DEFAULT '',
516+
`active` enum('N','Y') NOT NULL DEFAULT 'N',
517+
`ca_name` varchar(255) NOT NULL DEFAULT '',
518+
`ca_issue` varchar(255) NOT NULL DEFAULT '',
519+
`ca_wildcard` enum('Y','N') NOT NULL DEFAULT 'N',
520+
`ca_iodef` text NOT NULL,
521+
`ca_critical` tinyint(1) NOT NULL DEFAULT '0'
522+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
523+
524+
INSERT INTO `dns_ssl_ca` (`id`, `sys_userid`, `sys_groupid`, `sys_perm_user`, `sys_perm_group`, `sys_perm_other`, `active`, `ca_name`, `ca_issue`, `ca_wildcard`, `ca_iodef`, `ca_critical`) VALUES
525+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Comodo', 'comodoca.com', 'Y', '', 0),
526+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'DigiCert', 'digicert.com', 'Y', '', 0),
527+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Entrust', 'entrust.net', 'Y', '', 0),
528+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'GeoTrust (Symantec)', 'geotrust.com', 'Y', '', 0),
529+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Izenpe', 'izenpe.com', 'Y', '', 0),
530+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Let''s Encrypt', 'letsencrypt.org', 'N', '', 0),
531+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Symantec', 'symantec.com', 'Y', '', 0),
532+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'Thawte (Symantec)', 'thawte.com', 'Y', '', 0),
533+
(NULL, 1, 1, 'riud', 'riud', '', 'Y', 'WoSign', 'wosign.com', 'Y', '', 0);
534+
535+
503536
-- --------------------------------------------------------
504537

505538
--
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2017, Florian Schaal, schaal @it UG
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
class plugin_system_config_dns_ca extends plugin_base {
32+
33+
var $module;
34+
var $form;
35+
var $tab;
36+
var $record_id;
37+
var $formdef;
38+
var $options;
39+
var $error = '';
40+
41+
function onShow() {
42+
global $app;
43+
44+
$pluginTpl = new tpl;
45+
$pluginTpl->newTemplate('templates/system_config_dns_ca_edit.htm');
46+
include 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng';
47+
$pluginTpl->setVar($wb);
48+
if(isset($_GET['action']) && ($_GET['action'] == 'edit') && $_GET['id'] > 0) {
49+
$pluginTpl->setVar('edit_record', 1);
50+
$ca_id = intval($_GET['id']);
51+
$rec = $app->db->queryOneRecord("SELECT * FROM dns_ssl_ca WHERE id = ?", $ca_id);
52+
$pluginTpl->setVar('id', $rec['id']);
53+
$pluginTpl->setVar('ca_name', $rec['ca_name']);
54+
$pluginTpl->setVar('ca_issue', $rec['ca_issue']);
55+
$pluginTpl->setVar('ca_wildcard', $rec['ca_wildcard']);
56+
$pluginTpl->setVar('ca_critical', $rec['ca_critical']);
57+
$pluginTpl->setVar('ca_iodef', $rec['ca_iodef']);
58+
$pluginTpl->setVar('active', $rec['active']);
59+
} elseif(isset($_GET['action']) && ($_GET['action'] == 'save') && $_GET['id'] > 0) {
60+
$pluginTpl->setVar('edit_record', 0);
61+
$ca_id = intval($_GET['id']);
62+
$pluginTpl->setVar('id', $ca_id);
63+
$pluginTpl->setVar('ca_name', $_POST['ca_name']);
64+
$pluginTpl->setVar('ca_issue', $_POST['ca_issue']);
65+
$pluginTpl->setVar('ca_wildcard', $_POST['ca_wildcard']);
66+
$pluginTpl->setVar('ca_critical', $_POST['ca_critical']);
67+
$pluginTpl->setVar('ca_iodef', $_POST['ca_iodef']);
68+
$pluginTpl->setVar('active', $_POST['active']);
69+
} else {
70+
$pluginTpl->setVar('edit_record', 0);
71+
}
72+
73+
return $pluginTpl->grab();
74+
75+
}
76+
77+
function onUpdate() {
78+
global $app;
79+
80+
$id = intval($_GET['id']);
81+
if(isset($_GET['action']) && $_GET['action'] == 'save') {
82+
if($id > 0) {
83+
$app->db->query("UPDATE dns_ssl_ca SET ca_name = ?, ca_issue = ?, ca_wildcard = ?, ca_iodef = ?, active = ? WHERE id = ?", $_POST['ca_name'], $_POST['ca_issue'], $_POST['ca_wildcard'], $_POST['ca_iodef'], $_POST['active'], $_GET['id']);
84+
} else {
85+
$app->db->query("INSERT INTO (sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, ca_name, ca_issue, ca_wildcard, ca_iodef, active) VALUES(1, 1, 'riud', 'riud', '', ?, ?, ?, ?, ?", $_POST['ca_name'], $_POST['ca_issue'], $_POST['ca_wildcard'], $_POST['ca_iodef'], $_POST['active']);
86+
}
87+
}
88+
}
89+
90+
}
91+
92+
?>
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2017, Florian Schaal, schaal @it UG
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
class plugin_system_config_dns_ca_list extends plugin_base {
32+
33+
var $module;
34+
var $form;
35+
var $tab;
36+
var $record_id;
37+
var $formdef;
38+
var $options;
39+
40+
function onShow() {
41+
global $app;
42+
43+
$listTpl = new tpl;
44+
$listTpl->newTemplate('templates/system_config_dns_ca_list.htm');
45+
46+
//* Loading language file
47+
$lng_file = 'lib/lang/'.$_SESSION['s']['language'].'_system_config.lng';
48+
include $lng_file;
49+
$listTpl->setVar($wb);
50+
if($_SESSION['s']['user']['typ'] == 'admin') {
51+
if(isset($_GET['action'])) {
52+
$ca_id = $app->functions->intval($_GET['id']);
53+
if($_GET['action'] == 'delete' && $ca_id > 0) {
54+
$app->db->query("DELETE FROM dns_ssl_ca WHERE id = ?", $ca_id);
55+
}
56+
}
57+
}
58+
59+
if(isset($_GET['action']) && $_GET['action'] == 'edit' && $_GET['id'] > 0) $listTpl->setVar('edit_record', 1);
60+
61+
// Getting Datasets from DB
62+
$ca_records = $app->db->queryAllRecords("SELECT * FROM dns_ssl_ca ORDER BY ca_name ASC");
63+
$records=array();
64+
if(is_array($ca_records) && count($ca_records) > 0) {
65+
foreach($ca_records as $ca) {
66+
$rec['ca_id'] = $ca['id'];
67+
$rec['name'] = $ca['ca_name'];
68+
$rec['active'] = $ca['active'];
69+
$records[] = $rec;
70+
unset($rec);
71+
}
72+
$listTpl->setLoop('ca_records', @$records);
73+
}
74+
$listTpl->setVar('parent_id', $this->form->id);
75+
76+
return $listTpl->grab();
77+
}
78+
79+
}
80+
81+
?>
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2017, Florian Schaal, schaal @it UG
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
class system_config_dns_ca_plugin {
32+
33+
var $plugin_name = 'system_config_dns_ca_plugin';
34+
var $class_name = 'system_config_dns_ca_plugin';
35+
36+
function onLoad() {
37+
global $app;
38+
39+
$app->plugin->registerEvent('dns:dns_caa:on_after_update', 'system_config_dns_ca_plugin', 'caa_update');
40+
$app->plugin->registerEvent('dns:dns_caa:on_after_insert', 'system_config_dns_ca_plugin', 'caa_update');
41+
42+
$app->plugin->registerEvent('sites:web_vhost_domain:on_after_insert', 'system_config_dns_ca_plugin', 'web_vhost_domain_edit');
43+
$app->plugin->registerEvent('sites:web_vhost_domain:on_after_update', 'system_config_dns_ca_plugin', 'web_vhost_domain_edit');
44+
}
45+
46+
function caa_update($event_name, $page_form) {
47+
global $app;
48+
49+
if(trim($page_form->dataRecord['additional'] != '')) {
50+
$rec = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE id = ?", $page_form->id);
51+
unset($rec['id']);
52+
$zone = $app->db->queryOneRecord("SELECT origin FROM dns_soa WHERE id = ?", $rec['zone']);
53+
$host=str_replace($zone['origin'], '', $page_form->dataRecord['name']);
54+
$host=rtrim($host,'.');
55+
$page_form->dataRecord['additional']=str_replace($host, '', $page_form->dataRecord['additional']);
56+
$additional=explode(',', $page_form->dataRecord['additional']);
57+
foreach($additional as $new) {
58+
if($new != '') {
59+
$insert_data = $rec;
60+
$insert_data['name'] = $new.'.'.$zone['origin'];
61+
$app->db->datalogInsert('dns_rr', $insert_data, 'id');
62+
}
63+
}
64+
}
65+
} //* End function
66+
67+
function web_vhost_domain_edit($event_name, $page_form) {
68+
global $app;
69+
70+
if($page_form->dataRecord['ssl_letsencrypt'] == 'y') {
71+
$domain = $page_form->dataRecord['domain'];
72+
$subdomain = $page_form->dataRecord['subdomain'];
73+
$temp=$app->db->queryAllRecords("SELECT * FROM dns_rr WHERE type = 'CAA' AND (name = ? OR name = ?) AND data like ?", $domain.'.', $subdomain.'.'.$domain.'.', '%letsencrypt%');
74+
if(count($temp) == 0) {
75+
$caa = $app->db->queryOneRecord("SELECT * FROM dns_ssl_ca WHERE ca_issue = 'letsencrypt.org' AND active = 'Y'");
76+
$soa = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE origin = ?", $domain.'.');
77+
if(is_array($caa) && is_array($soa)) {
78+
$records = array();
79+
$records[] = $domain.'.';;
80+
if($subdomain != '' && $subdomain != 'www') $records[] = $subdomain.'.'.$domain;
81+
foreach($records as $record) {
82+
$new_rr = $app->db->queryOneRecord("SELECT * FROM dns_rr WHERE name = ?", $soa['origin']);
83+
unset($new_rr['id']);
84+
$new_rr['type'] = 'CAA';
85+
$new_rr['name'] = $record;
86+
$new_rr['data'] = "0 issue \"$caa[ca_issue]\"";
87+
$new_rr['ttl'] = $soa['ttl'];
88+
$new_rr['active'] = 'Y';
89+
$new_rr['stamp'] = date('Y-m-d H:i:s');
90+
$new_rr['serial'] = $app->validate_dns->increase_serial($new_rr['serial']);
91+
$app->db->datalogInsert('dns_rr', $new_rr, 'id', $new_rr['zone']);
92+
$zone = $app->db->queryOneRecord("SELECT id, serial FROM dns_soa WHERE active = 'Y' AND id = ?", $new_rr['zone']);
93+
$new_serial = $app->validate_dns->increase_serial($zone['serial']);
94+
$app->db->datalogUpdate('dns_soa', array("serial" => $new_serial), 'id', $zone['id']);
95+
}
96+
}
97+
}
98+
}
99+
}
100+
101+
} // End class
102+
103+
?>

interface/web/admin/form/system_config.tform.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,5 +646,21 @@
646646
)
647647
);
648648

649+
$form['tabs']['dns_ca'] = array (
650+
'title' => 'DNS CAs',
651+
'width' => 100,
652+
'template' => 'templates/system_config_dns_ca.htm',
653+
'fields' => array (),
654+
'plugins' => array (
655+
'dns_ca' => array (
656+
'class' => 'plugin_dns_ca',
657+
'options' => array()
658+
),
659+
'dns_ca_list' => array (
660+
'class' => 'plugin_dns_ca_list',
661+
'options' => array()
662+
)
663+
)
664+
);
649665

650666
?>

interface/web/admin/lib/lang/ar_system_config.lng

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,12 @@ $wb['default_webserver_txt'] = 'Default Webserver';
8282
$wb['default_dnsserver_txt'] = 'Default DNS Server';
8383
$wb['default_slave_dnsserver_txt'] = 'Default Secondary DNS Server';
8484
$wb['default_dbserver_txt'] = 'Default Database Server';
85+
$wb['ca_name_txt'] = 'Name';
86+
$wb['ca_issue_txt'] = 'Issue';
87+
$wb['ca_wildcard_txt'] = 'Use Wildcard';
88+
$wb['ca_critical_txt'] = 'Strict Check'; //For future use. At this time, CA<E2><80><99>s do not recognize any other flag values as described in RFC 6844
89+
$wb['ca_iodef_txt'] = 'iodef';
90+
$wb['active_txt'] = 'Aktive';
91+
$wb['btn_save_txt'] = 'Save';
92+
$wb['btn_cancel_txt'] = 'Cancel';
8593
?>

0 commit comments

Comments
 (0)