/** * @param \Claroline\CoreBundle\Entity\User $user */ public function uploadAvatar(User $user) { if (null !== $user->getPictureFile()) { if (!is_writable($pictureDir = $this->uploadsDirectory . '/pictures/')) { throw new \Exception("{$pictureDir} is not writable"); } $user->setPicture(sha1($user->getPictureFile()->getClientOriginalName() . $user->getId()) . '.' . $user->getPictureFile()->guessExtension()); $user->getPictureFile()->move($pictureDir, $user->getPicture()); } }
/** * @EXT\Route( * "user/{user}/infos/request", * name="claro_user_infos_request", * options = {"expose"=true} * ) */ public function userInfosRequestAction(User $user) { $datas = array('id' => $user->getId(), 'firstName' => $user->getFirstName(), 'lastName' => $user->getLastName(), 'username' => $user->getUsername(), 'mail' => $user->getMail(), 'phone' => $user->getPhone(), 'picture' => $user->getPicture()); return new JsonResponse($datas, 200); }
/** * @ApiDoc( * description="Returns a user", * views = {"user"} * ) * @Get("/user/{user}/public", name="get_public_user", options={ "method_prefix" = false }) */ public function getPublicUserAction(User $user) { $settingsProfile = $this->facetManager->getVisiblePublicPreference(); $publicUser = []; foreach ($settingsProfile as $property => $isViewable) { if ($isViewable || $user === $this->container->get('security.token_storage')->getToken()->getUser()) { switch ($property) { case 'baseData': $publicUser['lastName'] = $user->getLastName(); $publicUser['firstName'] = $user->getFirstName(); $publicUser['username'] = $user->getUsername(); $publicUser['picture'] = $user->getPicture(); $publicUser['description'] = $user->getAdministrativeCode(); break; case 'email': $publicUser['mail'] = $user->getMail(); break; case 'phone': $publicUser['phone'] = $user->getPhone(); break; case 'sendMail': $publicUser['mail'] = $user->getMail(); $publicUser['allowSendMail'] = true; break; case 'sendMessage': $publicUser['allowSendMessage'] = true; $publicUser['id'] = $user->getId(); break; } } } return $publicUser; }