functions.quota_notification.inc.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 = $_data['sender'];
  25. $html = $_data['html_tmpl'];
  26. try {
  27. $redis->Set('QW_SENDER', $sender);
  28. $redis->Set('QW_SUBJ', $subject);
  29. $redis->Set('QW_HTML', $html);
  30. }
  31. catch (RedisException $e) {
  32. $_SESSION['return'][] = array(
  33. 'type' => 'danger',
  34. 'log' => array(__FUNCTION__, $_action, $_data_log),
  35. 'msg' => array('redis_error', $e)
  36. );
  37. return false;
  38. }
  39. $_SESSION['return'][] = array(
  40. 'type' => 'success',
  41. 'log' => array(__FUNCTION__, $_action, $_data_log),
  42. 'msg' => 'saved_settings'
  43. );
  44. break;
  45. case 'get':
  46. try {
  47. $settings['subject'] = $redis->Get('QW_SUBJ');
  48. $settings['sender'] = $redis->Get('QW_SENDER');
  49. $settings['html_tmpl'] = htmlspecialchars($redis->Get('QW_HTML'));
  50. if (empty($settings['html_tmpl'])) {
  51. $settings['html_tmpl'] = htmlspecialchars(file_get_contents("/tpls/quota.tpl"));
  52. }
  53. }
  54. catch (RedisException $e) {
  55. $_SESSION['return'][] = array(
  56. 'type' => 'danger',
  57. 'log' => array(__FUNCTION__, $_action, $_data_log),
  58. 'msg' => array('redis_error', $e)
  59. );
  60. return false;
  61. }
  62. return $settings;
  63. break;
  64. }
  65. }