[Web] Add DKIM key when adding a domain or alias domain (#4254)
Signed-off-by: Kristian Feldsam <feldsam@gmail.com>master
parent
54c4d7e49c
commit
c1dcb529f3
|
@ -5,14 +5,6 @@ function dkim($_action, $_data = null, $privkey = false) {
|
||||||
global $lang;
|
global $lang;
|
||||||
switch ($_action) {
|
switch ($_action) {
|
||||||
case 'add':
|
case 'add':
|
||||||
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
|
||||||
$_SESSION['return'][] = array(
|
|
||||||
'type' => 'danger',
|
|
||||||
'log' => array(__FUNCTION__, $_action, $_data, ),
|
|
||||||
'msg' => 'access_denied'
|
|
||||||
);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
$key_length = intval($_data['key_size']);
|
$key_length = intval($_data['key_size']);
|
||||||
$dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim';
|
$dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim';
|
||||||
$domains = array_map('trim', preg_split( "/( |,|;|\n)/", $_data['domains']));
|
$domains = array_map('trim', preg_split( "/( |,|;|\n)/", $_data['domains']));
|
||||||
|
@ -42,6 +34,14 @@ function dkim($_action, $_data = null, $privkey = false) {
|
||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {
|
||||||
|
$_SESSION['return'][] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'log' => array(__FUNCTION__, $_action, $_data),
|
||||||
|
'msg' => array('access_denied', $domain)
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$config = array(
|
$config = array(
|
||||||
"digest_alg" => "sha256",
|
"digest_alg" => "sha256",
|
||||||
"private_key_bits" => $key_length,
|
"private_key_bits" => $key_length,
|
||||||
|
|
|
@ -579,6 +579,9 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||||
if (!empty(intval($_data['rl_value']))) {
|
if (!empty(intval($_data['rl_value']))) {
|
||||||
ratelimit('edit', 'domain', array('rl_value' => $_data['rl_value'], 'rl_frame' => $_data['rl_frame'], 'object' => $domain));
|
ratelimit('edit', 'domain', array('rl_value' => $_data['rl_value'], 'rl_frame' => $_data['rl_frame'], 'object' => $domain));
|
||||||
}
|
}
|
||||||
|
if (!empty($_data['key_size']) && !empty($_data['dkim_selector'])) {
|
||||||
|
dkim('add', array('key_size' => $_data['key_size'], 'dkim_selector' => $_data['dkim_selector'], 'domains' => $domain));
|
||||||
|
}
|
||||||
if (!empty($restart_sogo)) {
|
if (!empty($restart_sogo)) {
|
||||||
$restart_response = json_decode(docker('post', 'sogo-mailcow', 'restart'), true);
|
$restart_response = json_decode(docker('post', 'sogo-mailcow', 'restart'), true);
|
||||||
if ($restart_response['type'] == "success") {
|
if ($restart_response['type'] == "success") {
|
||||||
|
@ -906,6 +909,9 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||||
if (!empty(intval($_data['rl_value']))) {
|
if (!empty(intval($_data['rl_value']))) {
|
||||||
ratelimit('edit', 'domain', array('rl_value' => $_data['rl_value'], 'rl_frame' => $_data['rl_frame'], 'object' => $alias_domain));
|
ratelimit('edit', 'domain', array('rl_value' => $_data['rl_value'], 'rl_frame' => $_data['rl_frame'], 'object' => $alias_domain));
|
||||||
}
|
}
|
||||||
|
if (!empty($_data['key_size']) && !empty($_data['dkim_selector'])) {
|
||||||
|
dkim('add', array('key_size' => $_data['key_size'], 'dkim_selector' => $_data['dkim_selector'], 'domains' => $alias_domain));
|
||||||
|
}
|
||||||
$_SESSION['return'][] = array(
|
$_SESSION['return'][] = array(
|
||||||
'type' => 'success',
|
'type' => 'success',
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
|
|
|
@ -165,6 +165,22 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2" for="dkim_selector"><?=$lang['admin']['dkim_domains_selector'];?></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="dkim_selector" name="dkim_selector" value="dkim">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2" for="key_size"><?=$lang['admin']['dkim_key_length'];?></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select data-style="btn btn-default btn-sm" class="form-control" id="key_size" name="key_size">
|
||||||
|
<option data-subtext="bits">1024</option>
|
||||||
|
<option data-subtext="bits">2048</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-sm-2"><?=$lang['add']['backup_mx_options'];?></label>
|
<label class="control-label col-sm-2"><?=$lang['add']['backup_mx_options'];?></label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
|
@ -381,6 +397,23 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2" for="dkim_selector"><?=$lang['admin']['dkim_domains_selector'];?></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input class="form-control" id="dkim_selector" name="dkim_selector" value="dkim">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2" for="key_size"><?=$lang['admin']['dkim_key_length'];?></label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select data-style="btn btn-default btn-sm" class="form-control" id="key_size" name="key_size">
|
||||||
|
<option data-subtext="bits">1024</option>
|
||||||
|
<option data-subtext="bits">2048</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-offset-2 col-sm-10">
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
<button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_alias_domain" data-api-url='add/alias-domain' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>
|
<button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_alias_domain" data-api-url='add/alias-domain' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>
|
||||||
|
|
Loading…
Reference in New Issue