function _flashnode_file_limits in Flash Node 6.2
Same name and namespace in other branches
- 6.3 flashnode.module \_flashnode_file_limits()
Helper function to return array of permitted file sizes and extensions for the specified user Note - this basically replicates an equivalent function from upload.module
1 call to _flashnode_file_limits()
- flashnode_node_form_submit in ./
flashnode.module - Perform some post-processing on submitted form to populate node with data from the uploaded file
File
- ./
flashnode.module, line 1103
Code
function _flashnode_file_limits($user) {
// Get default upload limits
$file_limit = variable_get('upload_uploadsize_default', 1);
$user_limit = variable_get('upload_usersize_default', 1);
// Get default allowable extensions and initialise extensions array for results
$flashnode_default_extensions = variable_get('flashnode_default_extensions', FLASHNODE_DEFAULT_EXTENSIONS);
$all_extensions = array();
// Collect permissions for all roles this user belongs to
foreach ($user->roles as $rid => $name) {
$extensions = variable_get("flashnode_extensions_{$rid}", $flashnode_default_extensions);
$all_extensions = array_merge($all_extensions, explode(' ', $extensions));
// A zero value indicates no limit, take the least restrictive limit.
$file_size = variable_get("upload_uploadsize_{$rid}", variable_get('upload_uploadsize_default', 1)) * 1024 * 1024;
$file_limit = $file_limit && $file_size ? max($file_limit, $file_size) : 0;
$user_size = variable_get("upload_usersize_{$rid}", variable_get('upload_usersize_default', 1)) * 1024 * 1024;
$user_limit = $user_limit && $user_size ? max($user_limit, $user_size) : 0;
}
$all_extensions = implode(' ', array_unique($all_extensions));
// Return results as an array
return array(
'extensions' => $all_extensions,
'file_size' => $file_limit,
'user_size' => $user_limit,
);
}