]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
TagProfileAction and OStatusPlugin now use less redundant code
authorMikael Nordfeldth <mmn@hethane.se>
Sun, 8 Mar 2015 19:10:20 +0000 (20:10 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 8 Mar 2015 19:14:46 +0000 (20:14 +0100)
actions/tagprofile.php
plugins/OStatus/OStatusPlugin.php
plugins/OStatus/classes/Ostatus_profile.php

index 871626ef1925f4a208bcdf44384e601010f72af9..79a401c6a93dccfb7d584ddb088d4cb33f1fdd7d 100644 (file)
@@ -19,7 +19,6 @@
 
 if (!defined('GNUSOCIAL')) { exit(1); }
 
-require_once INSTALLDIR . '/lib/settingsaction.php';
 require_once INSTALLDIR . '/lib/peopletags.php';
 
 class TagprofileAction extends FormAction
@@ -29,36 +28,32 @@ class TagprofileAction extends FormAction
     protected $target = null;
     protected $form = 'TagProfile';
 
-    protected function prepare(array $args=array())
+    protected function doPreparation()
     {
-        parent::prepare($args);
-
         $id = $this->trimmed('id');
-        if (!$id) {
-            $this->target = null;
-        } else {
+        $uri = $this->trimmed('uri');
+        if (!empty($id))  {
             $this->target = Profile::getKV('id', $id);
 
             if (!$this->target instanceof Profile) {
                 // TRANS: Client error displayed when referring to non-existing profile ID.
                 $this->clientError(_('No profile with that ID.'));
             }
+        } elseif (!empty($uri)) {
+            $this->target = Profile::fromUri($uri);
+        } else {
+            // TRANS: Client error displayed when trying to tag a user but no ID or profile is provided.
+            $this->clientError(_('No profile identifier provided.'));
         }
 
-        if ($this->target instanceof Profile && !$this->scoped->canTag($this->target)) {
+        if (!$this->scoped->canTag($this->target)) {
             // TRANS: Client error displayed when trying to tag a user that cannot be tagged.
             $this->clientError(_('You cannot tag this user.'));
         }
 
-        return true;
-    }
+        $this->formOpts = $this->target;
 
-    protected function handle()
-    {
-        if (Event::handle('StartTagProfileAction', array($this, $this->target))) {
-            parent::handle();
-            Event::handle('EndTagProfileAction', array($this, $this->target));
-        }
+        return true;
     }
 
     function title()
@@ -115,17 +110,8 @@ class TagprofileAction extends FormAction
         }
     }
 
-    protected function getForm()
-    {
-        $class = $this->form.'Form';
-        $form = new $class($this, $this->target);
-        return $form;
-    }
-
-    protected function handlePost()
+    protected function doPost()
     {
-        parent::handlePost();   // Does nothing for now
-
         $tagstring = $this->trimmed('tags');
         $token = $this->trimmed('token');
 
@@ -144,22 +130,16 @@ class TagprofileAction extends FormAction
                     if (!common_valid_profile_tag($tag)) {
                         // TRANS: Form validation error displayed if a given tag is invalid.
                         // TRANS: %s is the invalid tag.
-                        $this->showForm(sprintf(_('Invalid tag: "%s".'), $tag));
-                        return;
+                        throw new ClientException(sprintf(_('Invalid tag: "%s".'), $tag));
                     }
 
                     $tag_priv[$tag] = $private;
                 }
             }
 
-            try {
-                $result = Profile_tag::setTags($this->scoped->id, $this->target->id, $tags, $tag_priv);
-                if (!$result) {
-                    throw new Exception('The tags could not be saved.');
-                }
-            } catch (Exception $e) {
-                $this->showForm($e->getMessage());
-                return false;
+            $result = Profile_tag::setTags($this->scoped->getID(), $this->target->getID(), $tags, $tag_priv);
+            if (!$result) {
+                throw new ServerException('The tags could not be saved.');
             }
 
             if ($this->boolean('ajax')) {
@@ -188,17 +168,4 @@ class TagprofileAction extends FormAction
             Event::handle('EndSavePeopletags', array($this, $tagstring));
         }
     }
-
-    function showPageNotice()
-    {
-        if ($this->error) {
-            $this->element('p', 'error', $this->error);
-        } else {
-            $this->elementStart('div', 'instructions');
-            $this->element('p', null,
-                           // TRANS: Page notice.
-                           _('Use this form to add your subscribers or subscriptions to lists.'));
-            $this->elementEnd('div');
-        }
-    }
 }
index 15af953b8cc1853cf74ed764c7e7258a29cc6983..774a13be826dae24337829810748387d96d04c43 100644 (file)
@@ -233,37 +233,6 @@ class OStatusPlugin extends Plugin
         return true;
     }
 
-    function onStartTagProfileAction($action, $profile)
-    {
-        $err = null;
-        $uri = $action->trimmed('uri');
-
-        if (!$profile && $uri) {
-            try {
-                if (Validate::email($uri)) {
-                    $oprofile = Ostatus_profile::ensureWebfinger($uri);
-                } else if (Validate::uri($uri)) {
-                    $oprofile = Ostatus_profile::ensureProfileURL($uri);
-                } else {
-                    // TRANS: Exception in OStatus when invalid URI was entered.
-                    throw new Exception(_m('Invalid URI.'));
-                }
-
-                // redirect to the new profile.
-                common_redirect(common_local_url('tagprofile', array('id' => $oprofile->profile_id)), 303);
-
-            } catch (Exception $e) {
-                // TRANS: Error message in OStatus plugin. Do not translate the domain names example.com
-                // TRANS: and example.net, as these are official standard domain names for use in examples.
-                $err = _m("Sorry, we could not reach that address. Please make sure that the OStatus address is like nickname@example.com or http://example.net/nickname.");
-            }
-
-            $action->showForm($err);
-            return false;
-        }
-        return true;
-    }
-
     /*
      * If the field being looked for is URI look for the profile
      */
index 77b1e9bef5ae179a67d8ef24bdf132c11b2de088..2cf4f1bdd15a54b55a7354e0b27cabaca933153a 100644 (file)
@@ -2147,7 +2147,6 @@ class Ostatus_profile extends Managed_DataObject
                 throw new ServerException(sprintf(_m('Unrecognized URI protocol for profile: %1$s (%2$s).'),
                                                   $protocol,
                                                   $uri));
-                break;
             }
         } else {
             // TRANS: Server exception. %s is a URI.