unblock.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Unblock a user action class.
  4. *
  5. * PHP version 5
  6. *
  7. * @category Action
  8. * @package StatusNet
  9. * @author Evan Prodromou <evan@status.net>
  10. * @author Robin Millette <millette@status.net>
  11. * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  12. * @link http://status.net/
  13. *
  14. * StatusNet - the distributed open-source microblogging tool
  15. * Copyright (C) 2008, 2009, StatusNet, Inc.
  16. *
  17. * This program is free software: you can redistribute it and/or modify
  18. * it under the terms of the GNU Affero General Public License as published by
  19. * the Free Software Foundation, either version 3 of the License, or
  20. * (at your option) any later version.
  21. *
  22. * This program is distributed in the hope that it will be useful,
  23. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  24. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  25. * GNU Affero General Public License for more details.
  26. *
  27. * You should have received a copy of the GNU Affero General Public License
  28. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  29. */
  30. if (!defined('STATUSNET') && !defined('LACONICA')) {
  31. exit(1);
  32. }
  33. /**
  34. * Unblock a user action class.
  35. *
  36. * @category Action
  37. * @package StatusNet
  38. * @author Evan Prodromou <evan@status.net>
  39. * @author Robin Millette <millette@status.net>
  40. * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  41. * @link http://status.net/
  42. */
  43. class UnblockAction extends ProfileFormAction
  44. {
  45. function prepare(array $args = array())
  46. {
  47. if (!parent::prepare($args)) {
  48. return false;
  49. }
  50. $cur = common_current_user();
  51. assert(!empty($cur)); // checked by parent
  52. if (!$cur->hasBlocked($this->profile)) {
  53. // TRANS: Client error displayed when trying to unblock a non-blocked user.
  54. $this->clientError(_("You haven't blocked that user."));
  55. }
  56. return true;
  57. }
  58. /**
  59. * Unblock a user.
  60. *
  61. * @return void
  62. */
  63. function handlePost()
  64. {
  65. $cur = common_current_user();
  66. $result = false;
  67. if (Event::handle('StartUnblockProfile', array($cur, $this->profile))) {
  68. $result = $cur->unblock($this->profile);
  69. if ($result) {
  70. Event::handle('EndUnblockProfile', array($cur, $this->profile));
  71. }
  72. }
  73. if (!$result) {
  74. // TRANS: Server error displayed when removing a user block.
  75. $this->serverError(_('Error removing the block.'));
  76. }
  77. }
  78. }