function _masquerade_drush_sessions in Masquerade Extras 7.2
Same name and namespace in other branches
- 6.2 masquerade_drush/masquerade_drush.drush.inc \_masquerade_drush_sessions()
 
Utility command to dump the active sessions table from the site.
Parameters
string $account: An account name, user ID, or email address to search for.
1 call to _masquerade_drush_sessions()
- drush_masquerade_drush_sessions in masquerade_drush/
masquerade_drush.drush.inc  - Implements drush_HOOK_COMMAND().
 
File
- masquerade_drush/
masquerade_drush.drush.inc, line 360  - Provides some drush commands for masquerade.
 
Code
function _masquerade_drush_sessions($account = NULL) {
  // Grab all the sessions!
  $sessions = db_select('sessions', 's')
    ->fields('s')
    ->fields('u', array(
    'name',
  ));
  $sessions
    ->join('users', 'u', 'u.uid = s.uid');
  // If an account was provided, load it.
  $user = _masquerade_drush_get_user($account);
  // If the account was found, limit the results to just that account.
  if (!empty($user)) {
    $sessions
      ->condition('uid', $user->uid, '=');
  }
  else {
    if (empty($user) && !empty($account)) {
      return drush_log(sprintf('The account "%s" could not be found.', $account), 'error');
    }
  }
  // Execute the query.
  $sessions = $sessions
    ->execute()
    ->fetchAll();
  // If there are no active sessions, just quit.
  if (empty($account) && empty($sessions)) {
    return drush_log('No one is logged into the site right now.', 'ok');
  }
  else {
    if (!empty($user) && empty($sessions)) {
      return drush_log('The user "' . $user->name . '" is not logged in right now.', 'ok');
    }
  }
  // Dump a list of headers so the table actually makes sense.
  $list = array(
    array(
      'uid',
      'username',
      'hostname',
      'timestamp',
    ),
    array(
      '----------',
      '-----------',
      '---------------',
      '-----------',
    ),
  );
  foreach ($sessions as $s) {
    $list[] = array(
      $s->uid,
      $s->name,
      $s->hostname,
      $s->timestamp,
    );
  }
  drush_print_table($list, TRUE);
}