You are here

function og_unsubscribe in Organic groups 5

Same name and namespace in other branches
  1. 5.8 og.module \og_unsubscribe()
  2. 5.2 og.module \og_unsubscribe()
  3. 5.3 og.module \og_unsubscribe()
  4. 5.7 og.module \og_unsubscribe()
1 string reference to 'og_unsubscribe'
og_menu in ./og.module

File

./og.module, line 803

Code

function og_unsubscribe($gid, $uid = NULL) {
  global $user;
  if (is_null($uid)) {
    $uid = $user->uid;
  }
  $node = node_load($gid);
  $account = user_load(array(
    'uid' => $uid,
  ));
  if (!in_array($gid, array_keys($account->og_groups)) || $uid != $user->uid && !og_is_node_admin($node)) {

    // Ubsubscribee must be a member.
    // Only admins can remove another member.
    drupal_access_denied();
    exit;
  }
  if (!og_is_group_type($node->type) || $node->og_selective == OG_CLOSED && !og_is_node_admin($node) || $node->uid == $uid) {

    // Regular users may not leave from a closed group
    // Group manager may never leave (TODO: fix), such a link should never be generated
    drupal_access_denied();
    exit;
  }
  else {
    return drupal_get_form('og_confirm_unsubscribe', $gid, $node, $uid);
  }
}