diff --git a/include/class.config.php b/include/class.config.php index 8a7d5eebdb6d53a6d23d5667d543ded34ad8b5ca..08881a4d385e7e8a5df84faae34675c5ddd7ce02 100644 --- a/include/class.config.php +++ b/include/class.config.php @@ -523,15 +523,6 @@ class OsticketConfig extends Config { return $this->get('max_file_size'); } - function getStaffMaxFileUploads() { - return $this->get('max_staff_file_uploads'); - } - - function getClientMaxFileUploads() { - //TODO: change max_user_file_uploads to max_client_file_uploads - return $this->get('max_user_file_uploads'); - } - function getLogLevel() { return $this->get('log_level'); } diff --git a/include/class.format.php b/include/class.format.php index 55635f5aab7d6cd57dc6ad9b90c3cc9ff37b6ce3..2357e45e5583990767b37298d5dd6ced66517fed 100644 --- a/include/class.format.php +++ b/include/class.format.php @@ -30,6 +30,16 @@ class Format { return round(($bytes/1048576),1).' mb'; } + function filesize2bytes($size) { + switch (substr($size, -1)) { + case 'M': case 'm': return (int)$size <<= 20; + case 'K': case 'k': return (int)$size <<= 10; + case 'G': case 'g': return (int)$size <<= 30; + } + + return $size; + } + /* encode text into desired encoding - taking into accout charset when available. */ function encode($text, $charset=null, $encoding='utf-8') { diff --git a/include/class.forms.php b/include/class.forms.php index 54ef6e9003821df2da2091adcf0b0125b01f61e1..5f03015035251e092b3f261eaeb04b1fd848de06 100644 --- a/include/class.forms.php +++ b/include/class.forms.php @@ -1128,7 +1128,9 @@ class ThreadEntryField extends FormField { $attachments = new FileUploadField(); $fileupload_config = $attachments->getConfigurationOptions(); - $fileupload_config['extensions']->set('default', $cfg->getAllowedFileTypes()); + if ($cfg->getAllowedFileTypes()) + $fileupload_config['extensions']->set('default', $cfg->getAllowedFileTypes()); + return array( 'attachments' => new BooleanField(array( 'label'=>__('Enable Attachments'), diff --git a/include/class.i18n.php b/include/class.i18n.php index 4a9540520c26816b0c405ccfe318402ecf6ef840..4a0d138f295bec3586369127a16d255d3d51e61a 100644 --- a/include/class.i18n.php +++ b/include/class.i18n.php @@ -104,8 +104,18 @@ class Internationalization { } } - // Pages and content + // Load core config $_config = new OsticketConfig(); + + // Determine reasonable default max_file_size + $max_size = Format::filesize2bytes(strtoupper(ini_get('upload_max_filesize'))); + $val = ((int) $max_size/2); + $po2 = 1; + while( $po2 < $val ) $po2 <<= 1; + + $_config->set('max_file_size', $po2); + + // Pages and content foreach (array('landing','thank-you','offline', 'registration-staff', 'pwreset-staff', 'banner-staff', 'registration-client', 'pwreset-client', 'banner-client', diff --git a/include/i18n/en_US/config.yaml b/include/i18n/en_US/config.yaml index a63764ba9c1b3b1aeb8b56488c0cbc6c4aa4409e..b29df10ace86324407ba25ab5605ed7d569cdf04 100644 --- a/include/i18n/en_US/config.yaml +++ b/include/i18n/en_US/config.yaml @@ -15,7 +15,6 @@ core: reply_separator: '-- reply above this line --' # Do not translate below here - allowed_filetypes: '.doc, .pdf, .jpg, .jpeg, .gif, .png, .xls, .docx, .xlsx, .txt' isonline: 1 staff_ip_binding: 0 staff_max_logins: 4 @@ -27,9 +26,6 @@ core: client_session_timeout: 30 max_page_size: 25 max_open_tickets: 0 - max_file_size: 1048576 - max_user_file_uploads: 1 - max_staff_file_uploads: 1 autolock_minutes: 3 default_priority_id: 2 default_smtp_id: 0