apiaccountverifycredentials.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * StatusNet, the distributed open-source microblogging tool
  4. *
  5. * Test if supplied user credentials are valid.
  6. *
  7. * PHP version 5
  8. *
  9. * LICENCE: This program is free software: you can redistribute it and/or modify
  10. * it under the terms of the GNU Affero General Public License as published by
  11. * the Free Software Foundation, either version 3 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * This program is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU Affero General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Affero General Public License
  20. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  21. *
  22. * @category API
  23. * @package StatusNet
  24. * @author Evan Prodromou <evan@status.net>
  25. * @author Robin Millette <robin@millette.info>
  26. * @author Zach Copley <zach@status.net>
  27. * @copyright 2009 StatusNet, Inc.
  28. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  29. * @link http://status.net/
  30. */
  31. if (!defined('STATUSNET')) {
  32. exit(1);
  33. }
  34. /**
  35. * Check a user's credentials. Returns an HTTP 200 OK response code and a
  36. * representation of the requesting user if authentication was successful;
  37. * returns a 401 status code and an error message if not.
  38. *
  39. * @category API
  40. * @package StatusNet
  41. * @author Evan Prodromou <evan@status.net>
  42. * @author Robin Millette <robin@millette.info>
  43. * @author Zach Copley <zach@status.net>
  44. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  45. * @link http://status.net/
  46. */
  47. class ApiAccountVerifyCredentialsAction extends ApiAuthAction
  48. {
  49. protected function handle()
  50. {
  51. parent::handle();
  52. if (!in_array($this->format, array('xml', 'json'))) {
  53. // TRANS: Client error displayed when coming across a non-supported API method.
  54. $this->clientError(_('API method not found.'), $code = 404);
  55. }
  56. $twitter_user = $this->twitterUserArray($this->auth_user->getProfile(), true);
  57. if ($this->format == 'xml') {
  58. $this->initDocument('xml');
  59. $this->showTwitterXmlUser($twitter_user, 'user', true);
  60. $this->endDocument('xml');
  61. } elseif ($this->format == 'json') {
  62. $this->initDocument('json');
  63. $this->showJsonObjects($twitter_user);
  64. $this->endDocument('json');
  65. }
  66. }
  67. /**
  68. * Is this action read only?
  69. *
  70. * @param array $args other arguments
  71. *
  72. * @return boolean true
  73. */
  74. function isReadOnly($args)
  75. {
  76. return true;
  77. }
  78. }