DefaultController.php (2124B)
1 <?php 2 3 namespace PartKeepr\AuthBundle\Controller; 4 5 use Doctrine\ORM\EntityRepository; 6 use FOS\RestBundle\Controller\Annotations\RequestParam; 7 use FOS\RestBundle\Controller\Annotations\View; 8 use FOS\RestBundle\Controller\FOSRestController; 9 use FOS\RestBundle\Request\ParamFetcher; 10 use PartKeepr\AuthBundle\Entity\FOSUser; 11 use PartKeepr\AuthBundle\Entity\User; 12 use PartKeepr\AuthBundle\Validator\Constraints\Username; 13 use Sensio\Bundle\FrameworkExtraBundle\Configuration as Routing; 14 use Symfony\Component\HttpFoundation\Request; 15 use Symfony\Component\HttpFoundation\Response; 16 17 class DefaultController extends FOSRestController 18 { 19 /** 20 * Retrieves the salt for a given user. 21 * 22 * @Routing\Route("/api/users/getSalt", defaults={"method" = "post","_format" = "json"}) 23 * @Routing\Method({"POST"}) 24 * @RequestParam(name="username", strict=true, description="The username, 3-50 characters. Allowed characters: a-z, A-Z, 0-9, an underscore (_), a backslash (\), a slash (/), a dot (.) or a dash (-)", requirements=@Username, allowBlank=false) 25 * @View() 26 * 27 * @param ParamFetcher $paramFetcher 28 * 29 * @return string The salt 30 */ 31 public function getSaltAction(ParamFetcher $paramFetcher) 32 { 33 $entityManager = $this->getDoctrine()->getManager(); 34 35 /** 36 * @var EntityRepository 37 */ 38 $repository = $entityManager->getRepository( 39 'PartKeepr\AuthBundle\Entity\FOSUser' 40 ); 41 42 /** 43 * @var FOSUser 44 */ 45 $user = $repository->findOneBy(['username' => $paramFetcher->get('username')]); 46 47 if ($user !== null) { 48 return $user->getSalt(); 49 } else { 50 return false; 51 } 52 } 53 54 /** 55 * Logs out the user. 56 * 57 * @Routing\Route("/api/users/logout", defaults={"method" = "GET","_format" = "json"}) 58 * 59 * @param Request $request 60 */ 61 public function logoutAction(Request $request) 62 { 63 $this->get('security.token_storage')->setToken(null); 64 $request->getSession()->invalidate(); 65 66 return new Response('', 200); 67 } 68 }