You are here

function og_handler_field_og_membership_link_delete::render_link in Organic groups 7.2

1 call to og_handler_field_og_membership_link_delete::render_link()
og_handler_field_og_membership_link_delete::render in includes/views/handlers/og_handler_field_og_membership_link_delete.inc
Render the field.

File

includes/views/handlers/og_handler_field_og_membership_link_delete.inc, line 53
Definition of og_handler_field_og_membership_link_delete.

Class

og_handler_field_og_membership_link_delete
Field handler to present a link to delete membership.

Code

function render_link($data, $values) {
  $this->options['alter']['make_link'] = TRUE;
  $this->options['alter']['html'] = TRUE;

  // Ensure user has access to delete this membership.
  $og_membership = $this
    ->get_value($values);
  $group_type = $og_membership->group_type;
  $gid = $og_membership->gid;
  $group = entity_load_single($group_type, $gid);
  if (!og_user_access($group_type, $gid, 'manage members')) {

    // User is a group manager, and may not be removed.
    return;
  }
  if (isset($group->uid) && $group->uid == $og_membership->etid) {

    // User created the group, and may not be removed.
    return;
  }
  $text = !empty($this->options['text']) ? $this->options['text'] : t('remove');
  unset($this->options['alter']['fragment']);
  if (!empty($this->options['destination'])) {
    $this->options['alter']['query'] = drupal_get_destination();
  }
  $this->options['alter']['path'] = "group/" . $group_type . "/" . $gid . "/admin/people/delete-membership/" . $og_membership->id;
  return $text;
}