Przeglądaj źródła

[Web] Set new expire date for time limited aliases via actions button, fixes #1903

André 6 lat temu
rodzic
commit
788e32b328

+ 7 - 4
data/web/inc/functions.mailbox.inc.php

@@ -1213,12 +1213,15 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
               );
               continue;
             }
-            $stmt = $pdo->prepare("UPDATE `spamalias` SET `validity` = (`validity` + 3600) WHERE 
-              `address` = :address AND
-              `validity` >= :validity");
+            if (empty($_data['validity'])) {
+              continue;
+            }
+            $validity = round((int)time() + ($_data['validity'] * 3600));
+            $stmt = $pdo->prepare("UPDATE `spamalias` SET `validity` = :validity WHERE 
+              `address` = :address");
             $stmt->execute(array(
               ':address' => $address,
-              ':validity' => time()
+              ':validity' => $validity
             ));
             $_SESSION['return'][] = array(
               'type' => 'success',

+ 1 - 0
data/web/lang/lang.de.php

@@ -178,6 +178,7 @@ $lang['user']['alias_time_left'] = 'Zeit verbleibend';
 $lang['user']['alias_full_date'] = 'd.m.Y, H:i:s T';
 $lang['user']['alias_select_validity'] = 'Bitte Gültigkeit auswählen';
 $lang['user']['sync_jobs'] = 'Sync Jobs';
+$lang['user']['expire_in'] = 'Ungültig in';
 $lang['user']['hour'] = 'Stunde';
 $lang['user']['hours'] = 'Stunden';
 $lang['user']['day'] = 'Tag';

+ 6 - 5
data/web/lang/lang.en.php

@@ -181,11 +181,12 @@ $lang['user']['alias_time_left'] = 'Time left';
 $lang['user']['alias_full_date'] = 'd.m.Y, H:i:s T';
 $lang['user']['alias_select_validity'] = 'Period of validity';
 $lang['user']['sync_jobs'] = 'Sync jobs';
-$lang['user']['hour'] = 'Hour';
-$lang['user']['hours'] = 'Hours';
-$lang['user']['day'] = 'Day';
-$lang['user']['week'] = 'Week';
-$lang['user']['weeks'] = 'Weeks';
+$lang['user']['expire_in'] = 'Expire in';
+$lang['user']['hour'] = 'hour';
+$lang['user']['hours'] = 'hours';
+$lang['user']['day'] = 'day';
+$lang['user']['week'] = 'week';
+$lang['user']['weeks'] = 'weeks';
 $lang['user']['spamfilter'] = 'Spam filter';
 $lang['admin']['spamfilter'] = 'Spam filter';
 $lang['user']['spamfilter_wl'] = 'Whitelist';

+ 5 - 1
data/web/user.php

@@ -259,7 +259,11 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
           <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="tla" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
           <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
           <ul class="dropdown-menu">
-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-time"></span> + 1h</a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"1"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['hour'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"6"}' href="#"><?=$lang['user']['expire_in'];?> 6 <?=$lang['user']['hours'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"24"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['day'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"168"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['week'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"672"}' href="#"><?=$lang['user']['expire_in'];?> 4 <?=$lang['user']['weeks'];?></a></li>
             <li role="separator" class="divider"></li>
             <li><a data-action="delete_selected" data-id="tla" data-api-url='delete/time_limited_alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
           </ul>