diff --git a/webui/config.php b/webui/config.php
index 1182ec8..da2125c 100644
--- a/webui/config.php
+++ b/webui/config.php
@@ -159,6 +159,7 @@
$config['SHOW_ENVELOPE_JOURNAL'] = 0;
$config['BULK_DOWNLOAD_FOR_USERS'] = 1;
$config['MAX_DOWNLOAD_PER_HOUR'] = 0;
+$config['MAX_RESTORE_PER_HOUR'] = 0;
$config['MAX_CGI_FROM_SUBJ_LEN'] = 34;
$config['PAGE_LEN'] = 20;
diff --git a/webui/controller/message/headers.php b/webui/controller/message/headers.php
index e2da605..fda8142 100644
--- a/webui/controller/message/headers.php
+++ b/webui/controller/message/headers.php
@@ -40,6 +40,7 @@
$this->data['message'] = $this->model_search_message->get_message_headers($this->data['piler_id']);
$this->data['can_download'] = $this->model_audit_audit->can_download();
+ $this->data['can_restore'] = $this->model_audit_audit->can_restore();
$this->render();
}
diff --git a/webui/controller/message/journal.php b/webui/controller/message/journal.php
index 02ee677..b9e1b9a 100644
--- a/webui/controller/message/journal.php
+++ b/webui/controller/message/journal.php
@@ -40,6 +40,7 @@
$this->data['data'] = $this->model_search_message->get_message_journal($this->data['piler_id']);
$this->data['can_download'] = $this->model_audit_audit->can_download();
+ $this->data['can_restore'] = $this->model_audit_audit->can_restore();
$this->render();
}
diff --git a/webui/controller/message/restore.php b/webui/controller/message/restore.php
index eb110c2..ddfbd4c 100644
--- a/webui/controller/message/restore.php
+++ b/webui/controller/message/restore.php
@@ -15,7 +15,7 @@
$this->load->model('search/search');
$this->load->model('search/message');
-
+ $this->load->model('audit/audit');
$this->load->model('user/user');
$this->load->model('mail/mail');
@@ -38,6 +38,10 @@
}
+ if(!$this->model_audit_audit->can_restore()) {
+ die("cannot restore at the moment");
+ }
+
if(!verify_piler_id($this->data['id'])) {
AUDIT(ACTION_UNKNOWN, '', '', $this->data['id'], 'unknown piler id: ' . $this->data['id']);
die("invalid id: " . $this->data['id']);
diff --git a/webui/controller/message/view.php b/webui/controller/message/view.php
index cab2233..0659a2a 100644
--- a/webui/controller/message/view.php
+++ b/webui/controller/message/view.php
@@ -81,6 +81,7 @@
$this->data['images'] = array();
$this->data['can_download'] = $this->model_audit_audit->can_download();
+ $this->data['can_restore'] = $this->model_audit_audit->can_restore();
foreach($this->data['attachments'] as $a) {
if(preg_match("/image/", $a['type'])) {
diff --git a/webui/model/audit/audit.php b/webui/model/audit/audit.php
index 95b3dfc..bf85c38 100644
--- a/webui/model/audit/audit.php
+++ b/webui/model/audit/audit.php
@@ -171,6 +171,21 @@
}
+ public function can_restore() {
+
+ if(MAX_RESTORE_PER_HOUR <= 0 || Registry::get('auditor_user') == 1) { return 1; }
+
+ $session = Registry::get('session');
+
+ $email = $session->get("email");
+
+ $query = $this->db->query("SELECT COUNT(*) AS num FROM " . TABLE_AUDIT . " WHERE email=? AND ts > ? AND action=?", array($email, NOW-3600, ACTION_RESTORE_MESSAGE));
+
+ if($query->row['num'] <= MAX_RESTORE_PER_HOUR) { return 1; }
+
+ return 0;
+ }
+
}
?>
diff --git a/webui/view/theme/default/templates/message/headers.tpl b/webui/view/theme/default/templates/message/headers.tpl
index 7f3cfbd..a7a48cd 100644
--- a/webui/view/theme/default/templates/message/headers.tpl
+++ b/webui/view/theme/default/templates/message/headers.tpl
@@ -18,7 +18,7 @@
|
-
+
|
diff --git a/webui/view/theme/default/templates/message/journal.tpl b/webui/view/theme/default/templates/message/journal.tpl
index e372686..c61ddb4 100644
--- a/webui/view/theme/default/templates/message/journal.tpl
+++ b/webui/view/theme/default/templates/message/journal.tpl
@@ -18,7 +18,7 @@
|
-
+
|
diff --git a/webui/view/theme/default/templates/message/view.tpl b/webui/view/theme/default/templates/message/view.tpl
index 1c8b7a8..aa13db9 100644
--- a/webui/view/theme/default/templates/message/view.tpl
+++ b/webui/view/theme/default/templates/message/view.tpl
@@ -18,7 +18,7 @@
|
-
+
|
diff --git a/webui/view/theme/mobile/templates/message/headers.tpl b/webui/view/theme/mobile/templates/message/headers.tpl
index 9d907de..3031008 100644
--- a/webui/view/theme/mobile/templates/message/headers.tpl
+++ b/webui/view/theme/mobile/templates/message/headers.tpl
@@ -16,7 +16,7 @@
|
-
+
|
diff --git a/webui/view/theme/mobile/templates/message/journal.tpl b/webui/view/theme/mobile/templates/message/journal.tpl
index 0832892..cdae0be 100644
--- a/webui/view/theme/mobile/templates/message/journal.tpl
+++ b/webui/view/theme/mobile/templates/message/journal.tpl
@@ -16,7 +16,7 @@
|
-
+
|
|
diff --git a/webui/view/theme/mobile/templates/message/view.tpl b/webui/view/theme/mobile/templates/message/view.tpl
index 1539baf..26a140d 100644
--- a/webui/view/theme/mobile/templates/message/view.tpl
+++ b/webui/view/theme/mobile/templates/message/view.tpl
@@ -18,7 +18,7 @@
|
-
+
|