You are here

function webform_encrypt_webform_submission_render_alter in Webform Encrypt 6

Implementation of hook_webform_submission_render_alter(). Decrypt values when displaying webform submissions.

File

./webform_encrypt.module, line 97
Main module file for the Webform Encrypt module.

Code

function webform_encrypt_webform_submission_render_alter(&$renderable) {

  // First, determine if 1) if we are dealing with an email or a page view, and 2) if user matching
  // is enabled.
  if (variable_get('webform_encrypt_match_user', 0) && !empty($renderable['#email'])) {

    // If we are, then try to match a user to the email address we are sending to.
    $uid = db_result(db_query('SELECT uid FROM {users} WHERE mail = "%s"', array(
      $renderable['#email']['email'],
    )));
    $account = $uid ? user_load($uid) : NULL;
  }
  else {
    $account = NULL;
  }

  // Next, we loop through components and decrypt as necessary.
  foreach ($renderable['#submission']->data as $cid => $entry) {
    if (!empty($renderable['#node']->webform['components'][$cid]['extra']['encrypt'])) {
      $form_key = $renderable['#node']->webform['components'][$cid]['form_key'];
      if (user_access('view encrypted values')) {
        $renderable[$form_key]['#value'] = decrypt($entry['value'][0], array(
          'base64' => TRUE,
        ));
      }
      else {
        $renderable[$form_key]['#value'] = t('[Value Encrypted]');
      }
    }
  }
}