function file_upload_security_affected_fields in File Upload Security 7
Same name and namespace in other branches
- 7.3 file_upload_security.module \file_upload_security_affected_fields()
Helper to get all file fields in use on site.
Return value
array An array of file fields and entities using them by bundle.
1 call to file_upload_security_affected_fields()
- file_upload_security_affected_types in ./
file_upload_security.module - Helper to return an array of entities user 0 can create.
File
- ./
file_upload_security.module, line 490 - Helper module to advise and resolve security issues in file uploads.
Code
function file_upload_security_affected_fields() {
$file_fields =& drupal_static(__FUNCTION__);
if (!isset($file_fields)) {
$fields = field_info_field_map();
$file_fields = array(
'fields' => array(),
'entities' => array(),
);
if ($fields) {
$iterator = new RecursiveArrayIterator($fields);
while ($iterator
->valid()) {
$data = $iterator
->current();
$field = $iterator
->key();
if (array_key_exists('type', $data) && in_array($data['type'], file_upload_security_field_types())) {
if (array_key_exists('bundles', $data)) {
$bundles = reset($data['bundles']);
$entity = key($data['bundles']);
foreach ($bundles as $bundle) {
$file_fields['fields'][$field][] = $bundle;
}
if (array_key_exists($entity, $file_fields['entities'])) {
$file_fields['entities'][$entity] = array_merge($file_fields['entities'][$entity], $bundles);
}
else {
$file_fields['entities'][$entity] = $bundles;
}
}
}
$iterator
->next();
}
}
}
return $file_fields;
}