OAuthController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Base\OAuthServerBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  6. class OAuthController extends Controller
  7. {
  8. /**
  9. * @Route("/api/user/me", name="user_data_json")
  10. *
  11. * @return JsonResponse
  12. */
  13. public function getUserDataJsonAction()
  14. {
  15. $user = $this->getUser();
  16. $data = array();
  17. if ($user) {
  18. $data['id'] = $user->getId();
  19. $data['username'] = $user->getUsername();
  20. $data['firstname'] = $user->getFirstname();
  21. $data['lastname'] = $user->getLastname();
  22. $data['roles'] = $user->getRoles();
  23. // Tenancies del usuario
  24. $tenancies = $this->get('base_tenancy.tenancy_service')->getTenancies();
  25. $t = array();
  26. foreach ($tenancies as $tenancy) {
  27. $id = $tenancy->getId();
  28. $name = $tenancy->getName();
  29. $t[] = compact('id', 'name');
  30. }
  31. $data['tenancies'] = $t;
  32. $tenancyCurrent = $user->getTenancyEntityCurrent();
  33. $data['tenancyCurrent'] = array();
  34. if (!is_null($tenancyCurrent)) {
  35. $data['tenancyCurrent']['id'] = $tenancyCurrent->getId();
  36. $data['tenancyCurrent']['name'] = $tenancyCurrent->getName();
  37. }
  38. }
  39. return new JsonResponse($data);
  40. }
  41. }