Conditions | 4 |
Paths | 2 |
Total Lines | 32 |
Code Lines | 18 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
24 | protected function userLoader(AccessToken $accessToken): User |
||
25 | { |
||
26 | /** @var KeycloakResourceOwner $resourceOwner */ |
||
27 | $resourceOwner = $this->client->fetchUserFromToken($accessToken); |
||
28 | |||
29 | $user = $this->userRepository->findOneBy(['username' => $resourceOwner->getUsername()]) |
||
30 | ?: |
||
31 | $this->userRepository->findOneBy(['email' => $resourceOwner->getEmail()]); |
||
32 | |||
33 | if (!$user) { |
||
34 | $user = (new User()) |
||
35 | ->setCreatorId($this->userRepository->getRootUser()->getId()) |
||
36 | ; |
||
37 | } |
||
38 | |||
39 | $username = $user->getUsername() ?: $user->getEmail(); |
||
40 | |||
41 | $user |
||
42 | ->setFirstname($resourceOwner->getFirstName()) |
||
43 | ->setLastname($resourceOwner->getLastName()) |
||
44 | ->setEmail($resourceOwner->getEmail()) |
||
45 | ->setUsername($username) |
||
46 | ->setPlainPassword('keycloak') |
||
47 | ->setStatus(STUDENT) |
||
48 | ->setAuthSource('keycloak') |
||
49 | ->setRoleFromStatus(STUDENT) |
||
50 | ; |
||
51 | |||
52 | $this->userRepository->updateUser($user); |
||
53 | // updateAccessUrls ? |
||
54 | |||
55 | return $user; |
||
56 | } |
||
58 |