UserController

  1. drupal
    1. 7 modules/user/user.module

Controller class for users.

This extends the DrupalDefaultEntityController class, adding required special handling for user objects.

Hierarchy

Properties

NameDescription
DrupalDefaultEntityController::$cacheWhether this entity type should use the static cache.
DrupalDefaultEntityController::$entityCacheStatic cache of entities.
DrupalDefaultEntityController::$entityInfoArray of information about the entity.
DrupalDefaultEntityController::$entityTypeEntity type for this controller instance.
DrupalDefaultEntityController::$hookLoadArgumentsAdditional arguments to pass to hook_TYPE_load().
DrupalDefaultEntityController::$idKeyName of the entity's ID field in the entity database table.
DrupalDefaultEntityController::$revisionKeyName of entity's revision database table field, if it supports revisions.
DrupalDefaultEntityController::$revisionTableThe table that stores revisions, if the entity supports revisions.

Functions & methods

NameDescription
DrupalDefaultEntityController::buildQueryBuilds the query to load the entity.
DrupalDefaultEntityController::cacheGetGets entities from the static cache.
DrupalDefaultEntityController::cacheSetStores entities in the static entity cache.
DrupalDefaultEntityController::loadImplements DrupalEntityControllerInterface::load(). Overrides DrupalEntityControllerInterface::load
DrupalDefaultEntityController::resetCacheImplements DrupalEntityControllerInterface::resetCache(). Overrides DrupalEntityControllerInterface::resetCache
DrupalDefaultEntityController::__constructConstructor: sets basic variables. Overrides DrupalEntityControllerInterface::__construct
UserController::attachLoadAttaches data to entities upon loading. This will attach fields, if the entity is fieldable. It calls hook_entity_load() for modules which need to add data to all entities. It also calls hook_TYPE_load() on the loaded entities. For… Overrides DrupalDefaultEntityController::attachLoad

File

modules/user/user.module, line 296
Enables the user registration and login system.

View source
class UserController extends DrupalDefaultEntityController {

  function attachLoad(&$queried_users, $revision_id = FALSE) {
    // Build an array of user picture IDs so that these can be fetched later.
    $picture_fids = array();
    foreach ($queried_users as $key => $record) {
      $picture_fids[] = $record->picture;
      $queried_users[$key]->data = unserialize($record->data);
      $queried_users[$key]->roles = array();
      if ($record->uid) {
        $queried_users[$record->uid]->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
      }
      else {
        $queried_users[$record->uid]->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
      }
    }

    // Add any additional roles from the database.
    $result = db_query('SELECT r.rid, r.name, ur.uid FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid IN (:uids)', array(':uids' => array_keys($queried_users)));
    foreach ($result as $record) {
      $queried_users[$record->uid]->roles[$record->rid] = $record->name;
    }

    // Add the full file objects for user pictures if enabled.
    if (!empty($picture_fids) && variable_get('user_pictures', 1) == 1) {
      $pictures = file_load_multiple($picture_fids);
      foreach ($queried_users as $account) {
        if (!empty($account->picture) && isset($pictures[$account->picture])) {
          $account->picture = $pictures[$account->picture];
        }
        else {
          $account->picture = NULL;
        }
      }
    }
    // Call the default attachLoad() method. This will add fields and call
    // hook_user_load().
    parent::attachLoad($queried_users, $revision_id);
  }
}
Login or register to post comments