]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
make block actions use profileformaction superclass
authorEvan Prodromou <evan@status.net>
Mon, 16 Nov 2009 13:40:04 +0000 (14:40 +0100)
committerEvan Prodromou <evan@status.net>
Mon, 16 Nov 2009 13:40:04 +0000 (14:40 +0100)
actions/block.php
actions/unblock.php
lib/profileformaction.php

index b125d2d8b67d15c2a056cfe1a8d1821bfdeccfa1..2443b30105d990b996bf181abf98c8bace73b3b7 100644 (file)
@@ -64,7 +64,7 @@ class BlockAction extends Action
             $this->clientError(_('There was a problem with your session token. Try again, please.'));
             return;
         }
-        $id = $this->trimmed('blockto');
+        $id = $this->trimmed('profileid');
         if (!$id) {
             $this->clientError(_('No profile specified.'));
             return false;
@@ -97,7 +97,7 @@ class BlockAction extends Action
                                 303);
             } elseif ($this->arg('yes')) {
                 $this->blockProfile();
-            } elseif ($this->arg('blockto')) {
+            } else {
                 $this->showPage();
             }
         }
@@ -138,7 +138,7 @@ class BlockAction extends Action
                          'unable to subscribe to you in the future, and '.
                          'you will not be notified of any @-replies from them.'));
         $this->element('input', array('id' => 'blockto-' . $id,
-                                      'name' => 'blockto',
+                                      'name' => 'profileid',
                                       'type' => 'hidden',
                                       'value' => $id));
         foreach ($this->args as $k => $v) {
index dc28d5d54a70c3b534956efc0b29bdf45842e6c3..c60458cd3ca810486714a1ea184e30d06cd51f45 100644 (file)
@@ -42,57 +42,25 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
  * @link     http://status.net/
  */
-class UnblockAction extends Action
-{
-    var $profile = null;
 
-    /**
-     * Take arguments for running
-     *
-     * @param array $args $_REQUEST args
-     *
-     * @return boolean success flag
-     */
+class UnblockAction extends ProfileFormAction
+{
     function prepare($args)
     {
-        parent::prepare($args);
-        if (!common_logged_in()) {
-            $this->clientError(_('Not logged in.'));
-            return false;
-        }
-        $token = $this->trimmed('token');
-        if (!$token || $token != common_session_token()) {
-            $this->clientError(_('There was a problem with your session token. Try again, please.'));
-            return;
-        }
-        $id = $this->trimmed('unblockto');
-        if (!$id) {
-            $this->clientError(_('No profile specified.'));
+        if (!parent::prepare($args)) {
             return false;
         }
-        $this->profile = Profile::staticGet('id', $id);
-        if (!$this->profile) {
-            $this->clientError(_('No profile with that ID.'));
+
+        $cur = common_current_user();
+
+        assert(!empty($cur)); // checked by parent
+
+        if (!$cur->hasBlocked($this->profile)) {
+            $this->clientError(_("You haven't blocked that user."));
             return false;
         }
-        return true;
-    }
 
-    /**
-     * Handle request
-     *
-     * Shows a page with list of favorite notices
-     *
-     * @param array $args $_REQUEST args; handled in prepare()
-     *
-     * @return void
-     */
-    function handle($args)
-    {
-        parent::handle($args);
-        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
-            $this->unblockProfile();
-        }
+        return true;
     }
 
     /**
@@ -100,7 +68,8 @@ class UnblockAction extends Action
      *
      * @return void
      */
-    function unblockProfile()
+
+    function handlePost()
     {
         $cur    = common_current_user();
         $result = $cur->unblock($this->profile);
@@ -108,20 +77,5 @@ class UnblockAction extends Action
             $this->serverError(_('Error removing the block.'));
             return;
         }
-        foreach ($this->args as $k => $v) {
-            if ($k == 'returnto-action') {
-                $action = $v;
-            } else if (substr($k, 0, 9) == 'returnto-') {
-                $args[substr($k, 9)] = $v;
-            }
-        }
-        if ($action) {
-            common_redirect(common_local_url($action, $args), 303);
-        } else {
-            common_redirect(common_local_url('subscribers',
-                                             array('nickname' => $cur->nickname)),
-                            303);
-        }
     }
 }
-
index 92e8611b9c16ddb18b57ffbccebd74e1a59ad980..8cb5f6a932bd72baaec87a52be6d764464ec7673 100644 (file)
@@ -134,6 +134,6 @@ class ProfileFormAction extends Action
 
     function handlePost()
     {
-        return;
+        $this->serverError(_("unimplemented method"));
     }
 }