userRepository = $userRepository; $this->projectRepository = $projectRepository; $this->userProvider = $userProvider; $this->groupProvider = $groupProvider; $this->placeRepo = $placeRepo; $this->params = $params; } /** * @return UserProject|mixed */ public function check(int $userId) { $user = $this->userRepository->findUserById($userId); if (!$user) { $userNew = new UserProject(); $userNew->setUserId($userId); $user = $this->userRepository->save($userNew); } return $user; } public function getUserFromToken(string $token) { $payload = $this->getPayload($token); $user = null; if (null !== $payload['sub']) { $user = $payload['sub']; } return $user; } /** * {@inheritDoc} */ public function loadUserFromAdmin(UserIdView $view) { return $this->userProvider->loadUserId($view->id) ? $this->userRepository->loadUserFromAdmin($view->id) : null; } /** * {@inheritDoc} */ public function getGroups(string $token): array { $payload = $this->getPayload($token); if (isset($payload['gp'])) { $groups = $payload['gp']; } else { $groups = []; } return $groups; } /** * @param string $token * * @return array */ private function getPayload(string $token): array { $jws = SimpleJWS::load($token); $payload = $jws->getPayload(); return $payload; } }