You are here

function masquerade_handler_field_user::render_link in Masquerade Extras 7

Same name and namespace in other branches
  1. 6.2 masquerade_views/handlers/masquerade_handler_field_user.inc \masquerade_handler_field_user::render_link()
  2. 6 masquerade_views/handlers/masquerade_handler_field_user.inc \masquerade_handler_field_user::render_link()
  3. 7.2 masquerade_views/handlers/masquerade_handler_field_user.inc \masquerade_handler_field_user::render_link()

Generates a link.

Overrides views_handler_field_user_link::render_link

File

masquerade_views/handlers/masquerade_handler_field_user.inc, line 69
Views field handler.

Class

masquerade_handler_field_user
Field handler that allows a link to be generated for a user so you may masquerade as them.

Code

function render_link($data, $values) {
  global $user;
  $text = !empty($this->options['text']) ? $this->options['text'] : t('masquerade');

  // Do not generate a link to masquerade as yourself.
  if (isset($user->uid) && $user->uid == $data) {
    return $text;
  }
  if (isset($values->{$this->aliases['uid']}) && $data !== NULL && $data !== '') {

    // Make sure any data being used to generate the link is clean.
    $switchto = $this
      ->sanitize_value($values->{$this->aliases['uid']});
    $this->options['alter']['make_link'] = TRUE;
    $this->options['alter']['path'] = "masquerade/switch/" . $switchto;

    // Let drupal know who we are before we switch users.
    $this->options['alter']['query'] = array(
      'token' => drupal_get_token($this->options['alter']['path']),
    );

    // If the user provided a custom destination (that isn't blank), tack it onto the link.
    if ($this->options['masquerade_views']['custom_destination'] == TRUE && $this->options['masquerade_views']['destination'] != '') {
      $this->options['alter']['query'] += array(
        'destination' => $this->options['masquerade_views']['destination'],
      );
    }
  }
  return $text;
}