You are here

function _flashnode_file_limits in Flash Node 6.2

Same name and namespace in other branches
  1. 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,
  );
}