@@ -73,6 +73,9 @@ function os2web_gf_service_handler($file_id) {
73
73
'application/vnd.ms-outlook',
74
74
);
75
75
76
+ $disallowed_mimes = array_merge($disallowed_mimes, explode(',', variable_get('os2web_cp_service_disallow_mimes', '')));
77
+ $case_exceptions = explode(',', variable_get('os2web_cp_service_disallow_mimes_exceptions', ''));
78
+
76
79
if ($url = variable_get('os2web_cp_service_cp_document_fileurl')) {
77
80
78
81
$username = variable_get('os2web_cp_service_endpoint_user');
@@ -87,7 +90,22 @@ function os2web_gf_service_handler($file_id) {
87
90
$header = curl_getinfo($ch);
88
91
curl_close($ch);
89
92
if ($header['http_code'] === 200) {
90
- if (!in_array($header['content_type'], $disallowed_mimes)) {
93
+ // Load the title to use it as the filename, and for conditions.
94
+ $query = new EntityFieldQuery();
95
+ $result = $query
96
+ ->entityCondition('entity_type', 'node')
97
+ ->propertyCondition('type', 'os2web_cp_service_cp_document')
98
+ ->propertyCondition('status', 1)
99
+ ->fieldCondition('field_os2web_cp_service_file_id', 'value', $file_id, '=')
100
+ ->execute();
101
+ $nids = (isset($result['node']))?array_keys($result['node']) : NULL;
102
+
103
+ $node = node_load(array_pop($nids));
104
+ $case_id = NULL;
105
+ if ($node) {
106
+ $case_id = $node->field_os2web_cp_service_doc_id[LANGUAGE_NONE][0]['value'];
107
+ }
108
+ if (!in_array($header['content_type'], $disallowed_mimes) || ($case_id && in_array($case_id, $case_exceptions))) {
91
109
drupal_add_http_header('Content-Type', $header['content_type']);
92
110
drupal_add_http_header('Content-Length', $header['download_content_length']);
93
111
drupal_add_http_header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0');
@@ -881,6 +899,18 @@ function os2web_cp_service_form_os2web_settings_settings_form_alter(&$form, &$fo
881
899
'#description' => 'Vises når den modtagede filtype ikke er godkendt til Download.',
882
900
'#default_value' => variable_get('os2web_cp_service_access_denied_message'),
883
901
);
902
+ $form['os2web_cp_service_config_group']['os2web_cp_service_disallow_mimes'] = array(
903
+ '#type' => 'textfield',
904
+ '#title' => 'Filers MIME type som ikke må hentes af brugere.',
905
+ '#description' => 'Tillad kun filer som ikke har disse mimes. Seperer mimes med komma.',
906
+ '#default_value' => variable_get('os2web_cp_service_disallow_mimes'),
907
+ );
908
+ $form['os2web_cp_service_config_group']['os2web_cp_service_disallow_mimes_exceptions'] = array(
909
+ '#type' => 'textfield',
910
+ '#title' => 'Sager der er alle MIMES er tilladt.',
911
+ '#description' => 'Tillad brugere at hente ALLE mime typer på angivende sager. Seperer sager med komma.',
912
+ '#default_value' => variable_get('os2web_cp_service_disallow_mimes_exceptions'),
913
+ );
884
914
}
885
915
886
916
/**
0 commit comments