You are here

function og_role_watchdog_og_membership_delete in Role Watchdog 7.2

Same name and namespace in other branches
  1. 7 modules/og_role_watchdog/og_role_watchdog.module \og_role_watchdog_og_membership_delete()

Implements hook_og_membership_delete().

File

modules/og_role_watchdog/og_role_watchdog.module, line 159
Logs changes to user roles.

Code

function og_role_watchdog_og_membership_delete($membership) {
  if ($membership->entity_type == 'user') {
    global $user;
    $account = user_load($membership->etid);
    $group = entity_load_single('node', $membership->gid);
    $roles = array_flip(og_roles($membership->group_type, $group->type, $membership->gid));

    // Authenticated role ID.
    $rid = $roles[OG_AUTHENTICATED_ROLE];

    // If the user is "pending", and the user removing the membership
    // is not the user being removed, then log this as "rejected".  Otherwise,
    // log it as "removed".
    _og_role_watchdog_remove_role($rid, $account, $membership->gid, $membership->state == OG_STATE_PENDING && $user->uid != $account->uid ? ROLE_WATCHDOG_ROLE_REJECTED : ROLE_WATCHDOG_ROLE_REMOVE);
  }
}