You are here

function private_files_download_permission_remove_directory_submit in Private files download permission 7.2

(Form callback.) Removes a directory from the control list.

File

./private_files_download_permission.module, line 488
Handles both module settings and its behaviour.

Code

function private_files_download_permission_remove_directory_submit($form, &$form_state) {
  $transaction = db_transaction();
  try {

    // Check that $form_state['values']['did'] is actually a valid directory id.
    $directory_list = private_files_download_permission_get_directory_list();
    if (!in_array($form_state['values']['did'], array_keys($directory_list))) {
      drupal_set_message(t('You need to provide a valid directory id.'), 'error');
      return;
    }

    // Remove users associated to the directory.
    db_delete('private_files_download_permission_directory_user')
      ->condition('did', $form_state['values']['did'])
      ->execute();

    // Remove roles associated to the directory.
    db_delete('private_files_download_permission_directory_role')
      ->condition('did', $form_state['values']['did'])
      ->execute();

    // Remove the directory itself.
    db_delete('private_files_download_permission_directory')
      ->condition('did', $form_state['values']['did'])
      ->execute();
  } catch (Exception $e) {
    $transaction
      ->rollback();
    drupal_set_message(t('An error occurred while removing directory from the control list. Please check the log for details.'), 'error');
  }

  // Purge directory list from cache.
  drupal_static_reset('private_files_download_permission_get_directory_list');

  // Set form redirection.
  $form_state['redirect'] = 'admin/config/media/private-files-download-permission';
}