Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

AccountInterface.php

Namespace

Drupal\Core\Session

File

core/lib/Drupal/Core/Session/AccountInterface.php

View source
<?php

namespace Drupal\Core\Session;


/**
 * Defines an account interface which represents the current user.
 *
 * Defines an object that has a user id, roles and can have session data. The
 * interface is implemented both by the global session and the user entity.
 *
 * @ingroup user_api
 */
interface AccountInterface {
    
    /**
     * Role ID for anonymous users.
     */
    const ANONYMOUS_ROLE = 'anonymous';
    
    /**
     * Role ID for authenticated users.
     */
    const AUTHENTICATED_ROLE = 'authenticated';
    
    /**
     * Returns the user ID or 0 for anonymous.
     *
     * @return int
     *   The user ID.
     */
    public function id();
    
    /**
     * Returns a list of roles.
     *
     * @param bool $exclude_locked_roles
     *   (optional) If TRUE, locked roles (anonymous/authenticated) are not returned.
     *
     * @return array
     *   List of role IDs.
     */
    public function getRoles($exclude_locked_roles = FALSE);
    
    /**
     * Checks whether a user has a certain permission.
     *
     * @param string $permission
     *   The permission string to check.
     *
     * @return bool
     *   TRUE if the user has the permission, FALSE otherwise.
     */
    public function hasPermission(string $permission);
    
    /**
     * Returns TRUE if the account is authenticated.
     *
     * @return bool
     *   TRUE if the account is authenticated.
     */
    public function isAuthenticated();
    
    /**
     * Returns TRUE if the account is anonymous.
     *
     * @return bool
     *   TRUE if the account is anonymous.
     */
    public function isAnonymous();
    
    /**
     * Returns the preferred language code of the account.
     *
     * @param bool $fallback_to_default
     *   (optional) Whether the return value will fall back to the site default
     *   language if the user has no language preference.
     *
     * @return string
     *   Returned language code depends upon following:
     *   - The user preferred language code is returned if set in the account.
     *   - If the user has no preferred language and $fallback_to_default is TRUE
     *     then the site default language code is returned.
     *   - If the user has no preferred language and $fallback_to_default is FALSE
     *     then empty string is returned.
     */
    public function getPreferredLangcode($fallback_to_default = TRUE);
    
    /**
     * Returns the preferred administrative language code of the account.
     *
     * Defines which language is used on administrative pages.
     *
     * @param bool $fallback_to_default
     *   (optional) Whether the return value will fall back to the site default
     *   language if the user has no administration language preference.
     *
     * @return string
     *   The language code that is preferred by the account for administration
     *   pages. If the preferred language is not set or is a language not
     *   configured anymore on the site, the site default is returned or an empty
     *   string is returned (if $fallback_to_default is FALSE).
     */
    public function getPreferredAdminLangcode($fallback_to_default = TRUE);
    
    /**
     * Returns the unaltered login name of this account.
     *
     * @return string
     *   An unsanitized plain-text string with the name of this account that is
     *   used to log in. Only display this name to admins and to the user who owns
     *   this account, and only in the context of the name used to login. For
     *   any other display purposes, use
     *   \Drupal\Core\Session\AccountInterface::getDisplayName() instead.
     */
    public function getAccountName();
    
    /**
     * Returns the display name of this account.
     *
     * By default, the passed-in object's 'name' property is used if it exists, or
     * else, the site-defined value for the 'anonymous' variable. However, a
     * module may override this by implementing
     * hook_user_format_name_alter(&$name, $account).
     *
     * @see hook_user_format_name_alter()
     *
     * @return string|\Drupal\Component\Render\MarkupInterface
     *   Either a string that will be auto-escaped on output or a
     *   MarkupInterface object that is already HTML escaped. Either is safe
     *   to be printed within HTML fragments.
     */
    public function getDisplayName();
    
    /**
     * Returns the email address of this account.
     *
     * @return string|null
     *   The email address, or NULL if the account is anonymous or the user does
     *   not have an email address.
     */
    public function getEmail();
    
    /**
     * Returns the timezone of this account.
     *
     * @return string
     *   Name of the timezone.
     */
    public function getTimeZone();
    
    /**
     * The timestamp when the account last accessed the site.
     *
     * A value of 0 means the user has never accessed the site.
     *
     * @return int
     *   Timestamp of the last access.
     */
    public function getLastAccessedTime();

}

Interfaces

Title Deprecated Summary
AccountInterface Defines an account interface which represents the current user.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal