privilegeService = $privilegeService; $this->userService = $userService; $this->userSearchParser = $userSearchParser; $this->userViewProxy = $userViewProxy; } public function getMethods() { return ['GET']; } public function getUrl() { return '/api/users/:userNameOrEmail'; } public function work($args) { $userNameOrEmail = $args['userNameOrEmail']; if (!$this->privilegeService->isLoggedIn($userNameOrEmail)) $this->privilegeService->assertPrivilege(Privilege::VIEW_USERS); $user = $this->userService->getByNameOrEmail($userNameOrEmail); return $this->userViewProxy->fromEntity($user); } }