Skip to content

Commit 93a7c18

Browse files
committed
Add conditions where special cases needs all types of documents.
1 parent b51219f commit 93a7c18

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

os2web_cp_service.module

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ function os2web_gf_service_handler($file_id) {
7373
'application/vnd.ms-outlook',
7474
);
7575

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+
7679
if ($url = variable_get('os2web_cp_service_cp_document_fileurl')) {
7780

7881
$username = variable_get('os2web_cp_service_endpoint_user');
@@ -87,7 +90,22 @@ function os2web_gf_service_handler($file_id) {
8790
$header = curl_getinfo($ch);
8891
curl_close($ch);
8992
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))) {
91109
drupal_add_http_header('Content-Type', $header['content_type']);
92110
drupal_add_http_header('Content-Length', $header['download_content_length']);
93111
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
881899
'#description' => 'Vises når den modtagede filtype ikke er godkendt til Download.',
882900
'#default_value' => variable_get('os2web_cp_service_access_denied_message'),
883901
);
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+
);
884914
}
885915

886916
/**

0 commit comments

Comments
 (0)