You are here

function filedepot_admin_settings_validate in filedepot 7

Same name and namespace in other branches
  1. 6 filedepot.admin.inc \filedepot_admin_settings_validate()

File

./filedepot.admin.inc, line 341
filedepot.admin.inc Drupal API functions for the Module Admin Settings

Code

function filedepot_admin_settings_validate($form, &$form_state) {
  if (!valid_email_address($form_state['values']['filedepot_email_to'])) {
    form_set_error('filedepot_email_to', t('The email address appears to be invalid.'));
  }
  $filterdata = array();
  $rawfilefilter = $form_state['values']['filedepot_filetype_filter'];
  $filterlines = preg_split('/\\r\\n|\\r|\\n/', $rawfilefilter);
  variable_set('filedepot_filetype_filterdata', $filterlines);
  $extensiondata = array();
  $rawextensions = $form_state['values']['filedepot_extensions'];
  $extensionlines = preg_split('/\\r\\n|\\r|\\n/', $rawextensions);
  foreach ($extensionlines as $line) {
    if (!empty($line)) {
      $records = explode(',', $line);
      foreach ($records as $mapping) {
        $data = explode('=', $mapping);
        $ext = trim($data[0]);
        $icon = trim($data[1]);
        $extensiondata[$ext] = $icon;
      }
    }
  }
  variable_set('filedepot_extension_data', serialize($extensiondata));

  /* Parse the default perms settings and create a single associative array the filedepot class will use */
  $validperms = array(
    'view',
    'admin',
    'upload',
    'upload_dir',
    'upload_ver',
    'approval',
  );
  $defaultperms = array();
  $cleanperms = array();
  $ownerperms = _filedepot_convert_permission_string($form_state['values']['filedepot_default_owner'], FALSE);
  $form_state['values']['filedepot_default_owner'] = $ownerperms;
  $aperms = explode(',', $ownerperms);
  foreach ($aperms as $perm) {
    $perm = trim($perm);
    if (in_array($perm, $validperms)) {
      $cleanperms[] = $perm;
    }
  }
  $defaultperms['owner'] = $cleanperms;
  $cleanperms = array();
  $groupperms = _filedepot_convert_permission_string($form_state['values']['filedepot_default_group'], FALSE);
  $form_state['values']['filedepot_default_group'] = $groupperms;
  $aperms = explode(',', $groupperms);
  foreach ($aperms as $perm) {
    $perm = trim($perm);
    if (in_array($perm, $validperms)) {
      $cleanperms[] = $perm;
    }
  }
  $defaultperms['group'] = $cleanperms;
  $rawroleperms = _filedepot_convert_permission_string_lines($form_state['values']['filedepot_default_roles'], FALSE);
  $form_state['values']['filedepot_default_roles'] = $rawroleperms;
  $permlines = preg_split('/\\r\\n|\\r|\\n/', $rawroleperms);
  foreach ($permlines as $line) {
    if (!empty($line)) {
      $parts = explode(':', $line);
      $role = trim($parts[0]);
      $perms = explode(',', $parts[1]);
      foreach ($perms as $perm) {
        $perm = trim($perm);
        if (in_array($perm, $validperms)) {
          $defaultperms[$role][] = trim($perm);
        }
      }
    }
  }
  variable_set('filedepot_default_perms_data', serialize($defaultperms));
}