apiqvitterupdatelinkcolor.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. /* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
  3. · ·
  4. · ·
  5. · Q V I T T E R ·
  6. · ·
  7. · https://git.gnu.io/h2p/Qvitter ·
  8. · ·
  9. · ·
  10. · <o) ·
  11. · /_//// ·
  12. · (____/ ·
  13. · (o< ·
  14. · o> \\\\_\ ·
  15. · \\) \____) ·
  16. · ·
  17. · ·
  18. · ·
  19. · Qvitter is free software: you can redistribute it and / or modify it ·
  20. · under the terms of the GNU Affero General Public License as published by ·
  21. · the Free Software Foundation, either version three of the License or (at ·
  22. · your option) any later version. ·
  23. · ·
  24. · Qvitter is distributed in hope that it will be useful but WITHOUT ANY ·
  25. · WARRANTY; without even the implied warranty of MERCHANTABILTY or FITNESS ·
  26. · FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for ·
  27. · more details. ·
  28. · ·
  29. · You should have received a copy of the GNU Affero General Public License ·
  30. · along with Qvitter. If not, see <http://www.gnu.org/licenses/>. ·
  31. · ·
  32. · Contact h@nnesmannerhe.im if you have any questions. ·
  33. · ·
  34. · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
  35. if (!defined('GNUSOCIAL')) { exit(1); }
  36. class ApiQvitterUpdateLinkColorAction extends ApiAuthAction
  37. {
  38. var $linkcolor = null;
  39. protected $needPost = true;
  40. /**
  41. * Take arguments for running
  42. *
  43. * @param array $args $_REQUEST args
  44. *
  45. * @return boolean success flag
  46. */
  47. protected function prepare(array $args=array())
  48. {
  49. parent::prepare($args);
  50. $this->format = 'json';
  51. $this->linkcolor = $this->trimmed('linkcolor');
  52. return true;
  53. }
  54. /**
  55. * Handle the request
  56. *
  57. * Try to save the user's colors in her design. Create a new design
  58. * if the user doesn't already have one.
  59. *
  60. * @param array $args $_REQUEST data (unused)
  61. *
  62. * @return void
  63. */
  64. protected function handle()
  65. {
  66. parent::handle();
  67. $validhex = preg_match('/^[a-f0-9]{6}$/i',$this->linkcolor);
  68. if ($validhex === false || $validhex == 0) {
  69. $this->clientError(_('Not a valid hex color.'), 400);
  70. }
  71. // save the new color
  72. Profile_prefs::setData($this->scoped, 'theme', 'linkcolor', $this->linkcolor);
  73. $twitter_user = $this->twitterUserArray($this->scoped, true);
  74. $this->initDocument('json');
  75. $this->showJsonObjects($twitter_user);
  76. $this->endDocument('json');
  77. }
  78. }