69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
function quota_notification($_action, $_data = null) {
 | 
						|
	global $redis;
 | 
						|
	global $lang;
 | 
						|
	$_data_log = $_data;
 | 
						|
  if ($_SESSION['mailcow_cc_role'] != "admin") {
 | 
						|
    $_SESSION['return'][] = array(
 | 
						|
      'type' => 'danger',
 | 
						|
      'log' => array(__FUNCTION__, $_action, $_data_log),
 | 
						|
      'msg' => 'access_denied'
 | 
						|
    );
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
  switch ($_action) {
 | 
						|
    case 'edit':
 | 
						|
      $retention_size = $_data['retention_size'];
 | 
						|
      if ($_data['release_format'] == 'attachment' || $_data['release_format'] == 'raw') {
 | 
						|
        $release_format = $_data['release_format'];
 | 
						|
      }
 | 
						|
      else {
 | 
						|
        $release_format = 'raw';
 | 
						|
      }
 | 
						|
      $subject = $_data['subject'];
 | 
						|
      $sender = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $_data['sender']);
 | 
						|
      if (filter_var($sender, FILTER_VALIDATE_EMAIL) === false) {
 | 
						|
        $sender = '';
 | 
						|
      }
 | 
						|
      $html = $_data['html_tmpl'];
 | 
						|
      try {
 | 
						|
        $redis->Set('QW_SENDER', $sender);
 | 
						|
        $redis->Set('QW_SUBJ', $subject);
 | 
						|
        $redis->Set('QW_HTML', $html);
 | 
						|
      }
 | 
						|
      catch (RedisException $e) {
 | 
						|
        $_SESSION['return'][] = array(
 | 
						|
          'type' => 'danger',
 | 
						|
          'log' => array(__FUNCTION__, $_action, $_data_log),
 | 
						|
          'msg' => array('redis_error', $e)
 | 
						|
        );
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      $_SESSION['return'][] = array(
 | 
						|
        'type' => 'success',
 | 
						|
        'log' => array(__FUNCTION__, $_action, $_data_log),
 | 
						|
        'msg' => 'saved_settings'
 | 
						|
      );
 | 
						|
    break;
 | 
						|
    case 'get':
 | 
						|
      try {
 | 
						|
        $settings['subject'] = $redis->Get('QW_SUBJ');
 | 
						|
        $settings['sender'] = $redis->Get('QW_SENDER');
 | 
						|
        $settings['html_tmpl'] = htmlspecialchars($redis->Get('QW_HTML'));
 | 
						|
        if (empty($settings['html_tmpl'])) {
 | 
						|
          $settings['html_tmpl'] = htmlspecialchars(file_get_contents("/tpls/quota.tpl"));
 | 
						|
        }
 | 
						|
      }
 | 
						|
      catch (RedisException $e) {
 | 
						|
        $_SESSION['return'][] = array(
 | 
						|
          'type' => 'danger',
 | 
						|
          'log' => array(__FUNCTION__, $_action, $_data_log),
 | 
						|
          'msg' => array('redis_error', $e)
 | 
						|
        );
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      return $settings;
 | 
						|
    break;
 | 
						|
  }
 | 
						|
}
 |