mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2025-01-10 04:18:10 +02:00
[Web] add "edit mailbox_from_template" function
This commit is contained in:
parent
0c1e2ed6f2
commit
c8fec24da3
@ -3196,6 +3196,66 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case 'mailbox_from_template':
|
||||
$stmt = $pdo->prepare("SELECT * FROM `templates`
|
||||
WHERE `template` = :template AND type = 'mailbox'");
|
||||
$stmt->execute(array(
|
||||
":template" => $_data['template']
|
||||
));
|
||||
$mbox_template_data = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
if (empty($mbox_template_data)){
|
||||
$_SESSION['return'][] = array(
|
||||
'type' => 'danger',
|
||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||
'msg' => 'template_missing'
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
$mbox_template_data = json_decode($mbox_template_data["attributes"], true);
|
||||
$quarantine_attributes = array('username' => $_data['username']);
|
||||
$tls_attributes = array('username' => $_data['username']);
|
||||
$ratelimit_attributes = array('object' => $_data['username']);
|
||||
$acl_attributes = array('username' => $_data['username'], 'user_acl' => array());
|
||||
$mailbox_attributes = array('username' => $_data['username']);
|
||||
foreach ($mbox_template_data as $key => $value){
|
||||
switch (true) {
|
||||
case (strpos($key, 'quarantine_') === 0):
|
||||
$quarantine_attributes[$key] = $value;
|
||||
break;
|
||||
case (strpos($key, 'tls_') === 0):
|
||||
if ($value == null)
|
||||
$value = 0;
|
||||
$tls_attributes[$key] = $value;
|
||||
break;
|
||||
case (strpos($key, 'rl_') === 0):
|
||||
$ratelimit_attributes[$key] = $value;
|
||||
break;
|
||||
case (strpos($key, 'acl_') === 0 && $value != 0):
|
||||
array_push($acl_attributes['user_acl'], str_replace('acl_' , '', $key));
|
||||
break;
|
||||
default:
|
||||
$mailbox_attributes[$key] = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$mailbox_attributes['quota'] = intval($mailbox_attributes['quota'] / 1048576);
|
||||
$result = mailbox('edit', 'mailbox', $mailbox_attributes);
|
||||
if ($result === false) return $result;
|
||||
$result = mailbox('edit', 'tls_policy', $tls_attributes);
|
||||
if ($result === false) return $result;
|
||||
$result = mailbox('edit', 'quarantine_notification', $quarantine_attributes);
|
||||
if ($result === false) return $result;
|
||||
$result = mailbox('edit', 'quarantine_category', $quarantine_attributes);
|
||||
if ($result === false) return $result;
|
||||
$result = ratelimit('edit', 'mailbox', $ratelimit_attributes);
|
||||
if ($result === false) return $result;
|
||||
$result = acl('edit', 'user', $acl_attributes);
|
||||
if ($result === false) return $result;
|
||||
|
||||
return true;
|
||||
break;
|
||||
case 'mailbox_templates':
|
||||
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
||||
$_SESSION['return'][] = array(
|
||||
|
Loading…
Reference in New Issue
Block a user