You are here

function og_role_watchdog_og_membership_insert 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_insert()

Implements hook_og_membership_insert().

File

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

Code

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

    // Authenticated role ID.
    $rid = $roles[OG_AUTHENTICATED_ROLE];
    if ($membership->state == OG_STATE_BLOCKED) {

      // We just added a user who is not a member of the group and immediately blocked them.
      // We will log this as "non-member blocked".
      $rid = $roles[OG_ANONYMOUS_ROLE];
      _og_role_watchdog_add_role($rid, $account, $membership->gid, ROLE_WATCHDOG_ROLE_BLOCKED);
    }
    elseif ($membership->state == OG_STATE_ACTIVE) {
      _og_role_watchdog_add_role($rid, $account, $membership->gid, ROLE_WATCHDOG_ROLE_ADD);
    }
    else {
      _og_role_watchdog_add_role($rid, $account, $membership->gid, ROLE_WATCHDOG_ROLE_REQUEST);
    }
  }
}