functions.quota_notification.inc.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. function quota_notification($_action, $_data = null) {
  3. global $redis;
  4. global $lang;
  5. $_data_log = $_data;
  6. if ($_SESSION['mailcow_cc_role'] != "admin") {
  7. $_SESSION['return'][] = array(
  8. 'type' => 'danger',
  9. 'log' => array(__FUNCTION__, $_action, $_data_log),
  10. 'msg' => 'access_denied'
  11. );
  12. return false;
  13. }
  14. switch ($_action) {
  15. case 'edit':
  16. $retention_size = $_data['retention_size'];
  17. if ($_data['release_format'] == 'attachment' || $_data['release_format'] == 'raw') {
  18. $release_format = $_data['release_format'];
  19. }
  20. else {
  21. $release_format = 'raw';
  22. }
  23. $subject = $_data['subject'];
  24. $sender = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $_data['sender']);
  25. if (filter_var($sender, FILTER_VALIDATE_EMAIL) === false) {
  26. $sender = '';
  27. }
  28. $html = $_data['html_tmpl'];
  29. try {
  30. $redis->Set('QW_SENDER', $sender);
  31. $redis->Set('QW_SUBJ', $subject);
  32. $redis->Set('QW_HTML', $html);
  33. }
  34. catch (RedisException $e) {
  35. $_SESSION['return'][] = array(
  36. 'type' => 'danger',
  37. 'log' => array(__FUNCTION__, $_action, $_data_log),
  38. 'msg' => array('redis_error', $e)
  39. );
  40. return false;
  41. }
  42. $_SESSION['return'][] = array(
  43. 'type' => 'success',
  44. 'log' => array(__FUNCTION__, $_action, $_data_log),
  45. 'msg' => 'saved_settings'
  46. );
  47. break;
  48. case 'get':
  49. try {
  50. $settings['subject'] = $redis->Get('QW_SUBJ');
  51. $settings['sender'] = $redis->Get('QW_SENDER');
  52. $settings['html_tmpl'] = htmlspecialchars($redis->Get('QW_HTML'));
  53. if (empty($settings['html_tmpl'])) {
  54. $settings['html_tmpl'] = htmlspecialchars(file_get_contents("/tpls/quota.tpl"));
  55. }
  56. }
  57. catch (RedisException $e) {
  58. $_SESSION['return'][] = array(
  59. 'type' => 'danger',
  60. 'log' => array(__FUNCTION__, $_action, $_data_log),
  61. 'msg' => array('redis_error', $e)
  62. );
  63. return false;
  64. }
  65. return $settings;
  66. break;
  67. }
  68. }