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