Cookie::getUserFromSession

protected Cookie::getUserFromSession(SessionInterface $session)

Returns the UserSession object for the given session.

Parameters

\Symfony\Component\HttpFoundation\Session\SessionInterface $session: The session.

Return value

\Drupal\Core\Session\AccountInterface|null The UserSession object for the current user, or NULL if this is an anonymous session.

File

core/modules/user/src/Authentication/Provider/Cookie.php, line 69

Class

Cookie
Cookie based authentication provider.

Namespace

Drupal\user\Authentication\Provider

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
protected function getUserFromSession(SessionInterface $session) {
  if ($uid = $session->get('uid')) {
    // @todo Load the User entity in SessionHandler so we don't need queries.
    $values = $this->connection
      ->query('SELECT * FROM {users_field_data} u WHERE u.uid = :uid AND u.default_langcode = 1', [':uid' => $uid])
      ->fetchAssoc();
 
    // Check if the user data was found and the user is active.
    if (!empty($values) && $values['status'] == 1) {
      // Add the user's roles.
      $rids = $this->connection
        ->query('SELECT roles_target_id FROM {user__roles} WHERE entity_id = :uid', [':uid' => $values['uid']])
        ->fetchCol();
      $values['roles'] = array_merge([AccountInterface::AUTHENTICATED_ROLE], $rids);
 
      return new UserSession($values);
    }
  }
 
  // This is an anonymous session.
  return NULL;
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.