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 @@   | - +   |