Chris@0: $value) { Chris@0: $this->$key = $value; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function id() { Chris@0: return $this->uid; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getRoles($exclude_locked_roles = FALSE) { Chris@0: $roles = $this->roles; Chris@0: Chris@0: if ($exclude_locked_roles) { Chris@0: $roles = array_values(array_diff($roles, [AccountInterface::ANONYMOUS_ROLE, AccountInterface::AUTHENTICATED_ROLE])); Chris@0: } Chris@0: Chris@0: return $roles; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function hasPermission($permission) { Chris@0: // User #1 has all privileges. Chris@0: if ((int) $this->id() === 1) { Chris@0: return TRUE; Chris@0: } Chris@0: Chris@0: return $this->getRoleStorage()->isPermissionInRoles($permission, $this->getRoles()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function isAuthenticated() { Chris@0: return $this->uid > 0; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function isAnonymous() { Chris@0: return $this->uid == 0; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getPreferredLangcode($fallback_to_default = TRUE) { Chris@0: $language_list = \Drupal::languageManager()->getLanguages(); Chris@0: if (!empty($this->preferred_langcode) && isset($language_list[$this->preferred_langcode])) { Chris@0: return $language_list[$this->preferred_langcode]->getId(); Chris@0: } Chris@0: else { Chris@0: return $fallback_to_default ? \Drupal::languageManager()->getDefaultLanguage()->getId() : ''; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getPreferredAdminLangcode($fallback_to_default = TRUE) { Chris@0: $language_list = \Drupal::languageManager()->getLanguages(); Chris@0: if (!empty($this->preferred_admin_langcode) && isset($language_list[$this->preferred_admin_langcode])) { Chris@0: return $language_list[$this->preferred_admin_langcode]->getId(); Chris@0: } Chris@0: else { Chris@0: return $fallback_to_default ? \Drupal::languageManager()->getDefaultLanguage()->getId() : ''; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getUsername() { Chris@18: @trigger_error('\Drupal\Core\Session\AccountInterface::getUsername() is deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. Use \Drupal\Core\Session\AccountInterface::getAccountName() or \Drupal\user\UserInterface::getDisplayName() instead. See https://www.drupal.org/node/2572493', E_USER_DEPRECATED); Chris@0: return $this->getAccountName(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getAccountName() { Chris@0: return $this->name; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getDisplayName() { Chris@0: $name = $this->name ?: \Drupal::config('user.settings')->get('anonymous'); Chris@0: \Drupal::moduleHandler()->alter('user_format_name', $name, $this); Chris@0: return $name; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getEmail() { Chris@0: return $this->mail; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getTimeZone() { Chris@0: return $this->timezone; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getLastAccessedTime() { Chris@0: return $this->access; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Returns the role storage object. Chris@0: * Chris@0: * @return \Drupal\user\RoleStorageInterface Chris@0: * The role storage object. Chris@0: */ Chris@0: protected function getRoleStorage() { Chris@0: return \Drupal::entityManager()->getStorage('user_role'); Chris@0: } Chris@0: Chris@0: }