class UserController

Same name in other branches
  1. 9 core/modules/user/src/Controller/UserController.php \Drupal\user\Controller\UserController
  2. 8.9.x core/modules/user/src/Controller/UserController.php \Drupal\user\Controller\UserController
  3. 10 core/modules/user/src/Controller/UserController.php \Drupal\user\Controller\UserController
  4. 11.x core/modules/user/src/Controller/UserController.php \Drupal\user\Controller\UserController

Controller class for users.

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

Hierarchy

Expanded class hierarchy of UserController

1 string reference to 'UserController'
user_entity_info in modules/user/user.module
Implements hook_entity_info().

File

modules/user/user.module, line 300

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((string) $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', 0)) {
            $pictures = file_load_multiple(array_filter($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);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
DrupalDefaultEntityController::$cache protected property Whether this entity type should use the static cache.
DrupalDefaultEntityController::$entityCache protected property Static cache of entities, keyed by entity ID.
DrupalDefaultEntityController::$entityInfo protected property Array of information about the entity.
DrupalDefaultEntityController::$entityType protected property Entity type for this controller instance.
DrupalDefaultEntityController::$hookLoadArguments protected property Additional arguments to pass to hook_TYPE_load().
DrupalDefaultEntityController::$idKey protected property Name of the entity's ID field in the entity database table.
DrupalDefaultEntityController::$revisionKey protected property Name of entity's revision database table field, if it supports revisions.
DrupalDefaultEntityController::$revisionTable protected property The table that stores revisions, if the entity supports revisions.
DrupalDefaultEntityController::buildQuery protected function Builds the query to load the entity. 4
DrupalDefaultEntityController::cacheGet protected function Gets entities from the static cache. 1
DrupalDefaultEntityController::cacheSet protected function Stores entities in the static entity cache.
DrupalDefaultEntityController::cleanIds protected function Ensures integer entity IDs are valid.
DrupalDefaultEntityController::filterId protected function Callback for array_filter that removes non-integer IDs.
DrupalDefaultEntityController::load public function Implements DrupalEntityControllerInterface::load(). Overrides DrupalEntityControllerInterface::load
DrupalDefaultEntityController::resetCache public function Implements DrupalEntityControllerInterface::resetCache(). Overrides DrupalEntityControllerInterface::resetCache
DrupalDefaultEntityController::__construct public function Constructor: sets basic variables.
UserController::attachLoad function Attaches data to entities upon loading. Overrides DrupalDefaultEntityController::attachLoad

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.