]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/finishremotesubscribe.php
Merge branch 'master' into 0.9.x
[quix0rs-gnu-social.git] / actions / finishremotesubscribe.php
index b1cec66f48af55ac41de11b0fab041433cf3b093..0325f6adbb512ab78085d25fd4123581d405b956 100644 (file)
@@ -37,7 +37,7 @@ require_once INSTALLDIR.'/lib/omb.php';
  * Handler for remote subscription finish callback
  *
  * When a remote user subscribes a local user, a redirect to this action is
- * issued after the remote user authorized his service to subscribe.
+ * issued after the remote user authorized their service to subscribe.
  *
  * @category Action
  * @package  Laconica
@@ -89,12 +89,16 @@ class FinishremotesubscribeAction extends Action
         }
 
         $remote = Remote_profile::staticGet('uri', $service->getListenerURI());
+        if ($remote) {
+            // Note remote profile may not have been saved yet.
+            // @fixme not convinced this is correct at all!
 
-        $profile = Profile::staticGet($remote->id);
+            $profile = Profile::staticGet($remote->id);
 
-        if ($user->hasBlocked($profile)) {
-            $this->clientError(_('That user has blocked you from subscribing.'));
-            return;
+            if ($user->hasBlocked($profile)) {
+                $this->clientError(_('That user has blocked you from subscribing.'));
+                return;
+            }
         }
 
         /* Perform the handling itself via libomb. */
@@ -122,6 +126,7 @@ class FinishremotesubscribeAction extends Action
 
         /* The service URLs are not accessible from datastore, so setting them
            after insertion of the profile. */
+        $remote = Remote_profile::staticGet('uri', $service->getListenerURI());
         $orig_remote = clone($remote);
 
         $remote->postnoticeurl    =
@@ -130,7 +135,7 @@ class FinishremotesubscribeAction extends Action
                             $service->getServiceURI(OMB_ENDPOINT_UPDATEPROFILE);
 
         if (!$remote->update($orig_remote)) {
-                $this->serverError(_('Error updating remote profile'));
+                $this->serverError(_('Error updating remote profile.'));
                 return;
         }