You are here

function og_role_watchdog_og_membership_insert in Role Watchdog 7

Same name and namespace in other branches
  1. 7.2 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 111
Logs changes to user roles.

Code

function og_role_watchdog_og_membership_insert($membership) {
  if ($membership->entity_type == 'user') {
    $account = user_load($membership->etid);
    $roles = array_flip(og_get_global_roles());

    // 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);
    }
  }
}