[Web] Add ACL for unlimited quota (default 0)
parent
c612f7ee4c
commit
14e57cf80f
|
@ -757,6 +757,14 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||||
$password2 = $_data['password2'];
|
$password2 = $_data['password2'];
|
||||||
$name = ltrim(rtrim($_data['name'], '>'), '<');
|
$name = ltrim(rtrim($_data['name'], '>'), '<');
|
||||||
$quota_m = intval($_data['quota']);
|
$quota_m = intval($_data['quota']);
|
||||||
|
if ((!isset($_SESSION['acl']['unlimited_quota']) || $_SESSION['acl']['quarantine_notification'] != "1") && $quota_m === 0) {
|
||||||
|
$_SESSION['return'][] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
|
'msg' => 'unlimited_quota_acl'
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (empty($name)) {
|
if (empty($name)) {
|
||||||
$name = $local_part;
|
$name = $local_part;
|
||||||
}
|
}
|
||||||
|
@ -2000,6 +2008,15 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
|
||||||
);
|
);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// if already 0 == ok
|
||||||
|
if ((!isset($_SESSION['acl']['unlimited_quota']) || $_SESSION['acl']['unlimited_quota'] != "1") && ($quota_m == 0 && $is_now['quota'] != 0)) {
|
||||||
|
$_SESSION['return'][] = array(
|
||||||
|
'type' => 'danger',
|
||||||
|
'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),
|
||||||
|
'msg' => 'unlimited_quota_acl'
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
$stmt = $pdo->prepare("SELECT `quota`, `maxquota`
|
$stmt = $pdo->prepare("SELECT `quota`, `maxquota`
|
||||||
FROM `domain`
|
FROM `domain`
|
||||||
WHERE `domain` = :domain");
|
WHERE `domain` = :domain");
|
||||||
|
|
|
@ -3,7 +3,7 @@ function init_db_schema() {
|
||||||
try {
|
try {
|
||||||
global $pdo;
|
global $pdo;
|
||||||
|
|
||||||
$db_version = "27012019_1217";
|
$db_version = "30032019_1905";
|
||||||
|
|
||||||
$stmt = $pdo->query("SHOW TABLES LIKE 'versions'");
|
$stmt = $pdo->query("SHOW TABLES LIKE 'versions'");
|
||||||
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
|
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
|
||||||
|
@ -464,6 +464,7 @@ function init_db_schema() {
|
||||||
"filters" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"filters" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
"ratelimit" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"ratelimit" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
"spam_policy" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"spam_policy" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
|
"unlimited_quota" => "TINYINT(1) NOT NULL DEFAULT '0'",
|
||||||
"alias_domains" => "TINYINT(1) NOT NULL DEFAULT '0'",
|
"alias_domains" => "TINYINT(1) NOT NULL DEFAULT '0'",
|
||||||
),
|
),
|
||||||
"keys" => array(
|
"keys" => array(
|
||||||
|
|
|
@ -19,6 +19,7 @@ $lang['footer']['cancel'] = 'Abbrechen';
|
||||||
$lang['footer']['hibp_nok'] = 'Übereinstimmung gefunden! Dieses Passwort ist potentiell gefährlich!';
|
$lang['footer']['hibp_nok'] = 'Übereinstimmung gefunden! Dieses Passwort ist potentiell gefährlich!';
|
||||||
$lang['footer']['hibp_ok'] = 'Keine Übereinstimmung gefunden.';
|
$lang['footer']['hibp_ok'] = 'Keine Übereinstimmung gefunden.';
|
||||||
|
|
||||||
|
$lang['danger']['unlimited_quota_acl'] = "Unendliche Quota untersagt durch ACL";
|
||||||
$lang['danger']['mysql_error'] = "MySQL Fehler: %s";
|
$lang['danger']['mysql_error'] = "MySQL Fehler: %s";
|
||||||
$lang['danger']['redis_error'] = "Redis Fehler: %s";
|
$lang['danger']['redis_error'] = "Redis Fehler: %s";
|
||||||
$lang['danger']['unknown_tfa_method'] = "Unbekannte TFA Methode";
|
$lang['danger']['unknown_tfa_method'] = "Unbekannte TFA Methode";
|
||||||
|
@ -405,6 +406,7 @@ $lang['acl']['bcc_maps'] = 'BCC Maps';
|
||||||
$lang['acl']['filters'] = 'Filter';
|
$lang['acl']['filters'] = 'Filter';
|
||||||
$lang['acl']['ratelimit'] = 'Rate limit';
|
$lang['acl']['ratelimit'] = 'Rate limit';
|
||||||
$lang['acl']['recipient_maps'] = 'Empfängerumschreibungen';
|
$lang['acl']['recipient_maps'] = 'Empfängerumschreibungen';
|
||||||
|
$lang['acl']['unlimited_quota'] = 'Unendliche Quota für Mailboxen';
|
||||||
$lang['acl']['prohibited'] = 'Untersagt durch Richtlinie';
|
$lang['acl']['prohibited'] = 'Untersagt durch Richtlinie';
|
||||||
|
|
||||||
$lang['mailbox']['quarantine_notification'] = 'Quarantäne-Benachrichtigung';
|
$lang['mailbox']['quarantine_notification'] = 'Quarantäne-Benachrichtigung';
|
||||||
|
|
|
@ -20,6 +20,7 @@ $lang['footer']['cancel'] = 'Cancel';
|
||||||
$lang['footer']['hibp_nok'] = 'Matched! This is a potentially dangerous password!';
|
$lang['footer']['hibp_nok'] = 'Matched! This is a potentially dangerous password!';
|
||||||
$lang['footer']['hibp_ok'] = 'No match found.';
|
$lang['footer']['hibp_ok'] = 'No match found.';
|
||||||
|
|
||||||
|
$lang['danger']['unlimited_quota_acl'] = "Unlimited quota prohibited by ACL";
|
||||||
$lang['danger']['mysql_error'] = "MySQL error: %s";
|
$lang['danger']['mysql_error'] = "MySQL error: %s";
|
||||||
$lang['danger']['redis_error'] = "Redis error: %s";
|
$lang['danger']['redis_error'] = "Redis error: %s";
|
||||||
$lang['danger']['unknown_tfa_method'] = "Unknown TFA method";
|
$lang['danger']['unknown_tfa_method'] = "Unknown TFA method";
|
||||||
|
@ -418,6 +419,7 @@ $lang['acl']['bcc_maps'] = 'BCC maps';
|
||||||
$lang['acl']['filters'] = 'Filters';
|
$lang['acl']['filters'] = 'Filters';
|
||||||
$lang['acl']['ratelimit'] = 'Rate limit';
|
$lang['acl']['ratelimit'] = 'Rate limit';
|
||||||
$lang['acl']['recipient_maps'] = 'Recipient maps';
|
$lang['acl']['recipient_maps'] = 'Recipient maps';
|
||||||
|
$lang['acl']['unlimited_quota'] = 'Unlimited quota for mailboxes';
|
||||||
$lang['acl']['prohibited'] = 'Prohibited by ACL';
|
$lang['acl']['prohibited'] = 'Prohibited by ACL';
|
||||||
|
|
||||||
$lang['mailbox']['quarantine_notification'] = 'Quarantine notifications';
|
$lang['mailbox']['quarantine_notification'] = 'Quarantine notifications';
|
||||||
|
|
Loading…
Reference in New Issue