OAuthController.php 1.6 KB

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