]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Allow PuSH posts without author information
authorEvan Prodromou <evan@status.net>
Sat, 20 Mar 2010 13:25:56 +0000 (08:25 -0500)
committerEvan Prodromou <evan@status.net>
Sat, 20 Mar 2010 13:25:56 +0000 (08:25 -0500)
Superfeedr (sp.?) posts entries without author information. We can
assume that this is intended to be by the original author.
Re-structured the checks for entries that come in by PuSH so they can
either have no author or an empty author, but not a different author.

plugins/OStatus/classes/Ostatus_profile.php

index 6885bb953177f5f6512128afb5d56f23704faccf..79e20adbd6810b38ed9d9a8f4df133b387e28bc9 100644 (file)
@@ -468,17 +468,16 @@ class Ostatus_profile extends Memcached_DataObject
                 return false;
             }
         } else {
-            // Individual user feeds may contain only posts from themselves.
-            // Authorship is validated against the profile URI on upper layers,
-            // through PuSH setup or Salmon signature checks.
-            $actorUri = self::getActorProfileURI($activity);
-            if ($actorUri == $this->uri) {
-                // Check if profile info has changed and update it
-                $this->updateFromActivityObject($activity->actor);
+            $actor = $activity->actor;
+
+            if (empty($actor)) {
+                // OK here! assume the default
+            } else if ($actor->id == $this->uri || $actor->link == $this->uri) {
+                $this->updateFromActivityObject($actor);
             } else {
-                common_log(LOG_WARNING, "OStatus: skipping post with bad author: got $actorUri expected $this->uri");
-                return false;
+                throw new Exception("Got an actor '{$actor->title}' ({$actor->id}) on single-user feed for {$this->uri}");
             }
+
             $oprofile = $this;
         }