OAuthController.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. $data['hasIntercom'] = $user->getHasIntercom();
  24. // Tenancies del usuario
  25. if ($this->has('base_tenancy.tenancy_service') && method_exists($user, 'getTenancyCurrent')) {
  26. $tenancies = $this->get('base_tenancy.tenancy_service')->getTenancies();
  27. $t = array();
  28. foreach ($tenancies as $tenancy) {
  29. $id = $tenancy->getId();
  30. $name = $tenancy->getName();
  31. $t[] = compact('id', 'name');
  32. }
  33. $data['tenancies'] = $t;
  34. $tenancyCurrent = $user->getTenancyCurrent();
  35. $data['tenancyCurrent'] = array();
  36. if (!is_null($tenancyCurrent)) {
  37. $data['tenancyCurrent']['id'] = $tenancyCurrent->getId();
  38. $data['tenancyCurrent']['name'] = $tenancyCurrent->getName();
  39. }
  40. }
  41. }
  42. return new JsonResponse($data);
  43. }
  44. }