mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2025-12-26 16:21:31 +00:00
Update domain modified timestamp on tag changes
Co-authored-by: DerLinkman <62480600+DerLinkman@users.noreply.github.com>
This commit is contained in:
@@ -842,11 +842,11 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {
|
if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {
|
||||||
$_SESSION['return'][] = array(
|
$_SESSION['return'][] = array(
|
||||||
'type' => 'danger',
|
'type' => 'danger',
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
'msg' => 'access_denied'
|
'msg' => 'access_denied'
|
||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -2753,11 +2753,11 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
':domain' => $domain
|
':domain' => $domain
|
||||||
));
|
));
|
||||||
// save tags
|
// save tags
|
||||||
foreach($tags as $index => $tag){
|
foreach($tags as $index => $tag){
|
||||||
if (empty($tag)) continue;
|
if (empty($tag)) continue;
|
||||||
if ($index > $GLOBALS['TAGGING_LIMIT']) {
|
if ($index > $GLOBALS['TAGGING_LIMIT']) {
|
||||||
$_SESSION['return'][] = array(
|
$_SESSION['return'][] = array(
|
||||||
'type' => 'warning',
|
'type' => 'warning',
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
'msg' => array('tag_limit_exceeded', 'limit '.$GLOBALS['TAGGING_LIMIT'])
|
'msg' => array('tag_limit_exceeded', 'limit '.$GLOBALS['TAGGING_LIMIT'])
|
||||||
);
|
);
|
||||||
@@ -2769,6 +2769,8 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
':tag_name' => $tag,
|
':tag_name' => $tag,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
$stmt = $pdo->prepare("UPDATE `domain` SET `modified` = NOW() WHERE `domain` = :domain");
|
||||||
|
$stmt->execute(array(':domain' => $domain));
|
||||||
|
|
||||||
$_SESSION['return'][] = array(
|
$_SESSION['return'][] = array(
|
||||||
'type' => 'success',
|
'type' => 'success',
|
||||||
@@ -2931,17 +2933,19 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$stmt = $pdo->prepare("INSERT INTO `tags_domain` (`domain`, `tag_name`) VALUES (:domain, :tag_name)");
|
$stmt = $pdo->prepare("INSERT INTO `tags_domain` (`domain`, `tag_name`) VALUES (:domain, :tag_name)");
|
||||||
$stmt->execute(array(
|
$stmt->execute(array(
|
||||||
':domain' => $domain,
|
':domain' => $domain,
|
||||||
':tag_name' => $tag,
|
':tag_name' => $tag,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
$stmt = $pdo->prepare("UPDATE `domain` SET `modified` = NOW() WHERE `domain` = :domain");
|
||||||
$_SESSION['return'][] = array(
|
$stmt->execute(array(':domain' => $domain));
|
||||||
'type' => 'success',
|
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
$_SESSION['return'][] = array(
|
||||||
'msg' => array('domain_modified', htmlspecialchars($domain))
|
'type' => 'success',
|
||||||
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
|
'msg' => array('domain_modified', htmlspecialchars($domain))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6111,11 +6115,11 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
$tags = $_data['tags'];
|
$tags = $_data['tags'];
|
||||||
if (!is_array($tags)) $tags = array();
|
if (!is_array($tags)) $tags = array();
|
||||||
|
|
||||||
|
$modifiedDomains = array();
|
||||||
$wasModified = false;
|
$wasModified = false;
|
||||||
foreach ($domains as $domain) {
|
foreach ($domains as $domain) {
|
||||||
if (!is_valid_domain_name($domain)) {
|
if (!is_valid_domain_name($domain)) {
|
||||||
$_SESSION['return'][] = array(
|
$_SESSION['return'][] = array(
|
||||||
'type' => 'danger',
|
'type' => 'danger',
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
'msg' => 'domain_invalid'
|
'msg' => 'domain_invalid'
|
||||||
@@ -6128,27 +6132,44 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
|||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
'msg' => 'access_denied'
|
'msg' => 'access_denied'
|
||||||
);
|
);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($tags as $tag){
|
$domainModified = false;
|
||||||
// delete tag
|
foreach($tags as $tag){
|
||||||
$wasModified = true;
|
// delete tag
|
||||||
$stmt = $pdo->prepare("DELETE FROM `tags_domain` WHERE `domain` = :domain AND `tag_name` = :tag_name");
|
$domainModified = true;
|
||||||
$stmt->execute(array(
|
$wasModified = true;
|
||||||
':domain' => $domain,
|
$stmt = $pdo->prepare("DELETE FROM `tags_domain` WHERE `domain` = :domain AND `tag_name` = :tag_name");
|
||||||
':tag_name' => $tag,
|
$stmt->execute(array(
|
||||||
));
|
':domain' => $domain,
|
||||||
}
|
':tag_name' => $tag,
|
||||||
}
|
));
|
||||||
|
}
|
||||||
if (!$wasModified) return false;
|
if ($domainModified) {
|
||||||
$_SESSION['return'][] = array(
|
$modifiedDomains[] = $domain;
|
||||||
'type' => 'success',
|
}
|
||||||
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
}
|
||||||
'msg' => array('domain_modified', $domain)
|
|
||||||
);
|
if (!$wasModified) return false;
|
||||||
break;
|
if (!empty($modifiedDomains)) {
|
||||||
|
$placeholders = array();
|
||||||
|
$params = array();
|
||||||
|
foreach ($modifiedDomains as $idx => $modifiedDomain) {
|
||||||
|
$placeholders[] = ":domain".$idx;
|
||||||
|
$params[":domain".$idx] = $modifiedDomain;
|
||||||
|
}
|
||||||
|
$stmt = $pdo->prepare("UPDATE `domain` SET `modified` = NOW() WHERE `domain` IN (".implode(',', $placeholders).")");
|
||||||
|
$stmt->execute($params);
|
||||||
|
$modifiedDomains = array_map('htmlspecialchars', $modifiedDomains);
|
||||||
|
}
|
||||||
|
$modifiedDomains = (empty($modifiedDomains)) ? array('-') : $modifiedDomains;
|
||||||
|
$_SESSION['return'][] = array(
|
||||||
|
'type' => 'success',
|
||||||
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
|
'msg' => array('domain_modified', implode(', ', $modifiedDomains))
|
||||||
|
);
|
||||||
|
break;
|
||||||
case 'tags_mailbox':
|
case 'tags_mailbox':
|
||||||
if (!is_array($_data['username'])) {
|
if (!is_array($_data['username'])) {
|
||||||
$usernames = array();
|
$usernames = array();
|
||||||
|
|||||||
Reference in New Issue
Block a user