]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Profile.php
Reworked the ActivityContext->attention structure
[quix0rs-gnu-social.git] / classes / Profile.php
index e461254f9dde88daea334c282510942a83d0573a..b2dab519a1599940733f0c1a9853860db52eeb3c 100644 (file)
@@ -842,12 +842,12 @@ class Profile extends Managed_DataObject
         return ($biolimit > 0 && !empty($bio) && (mb_strlen($bio) > $biolimit));
     }
 
-    public function update($orig)
+    function update($dataObject=false)
     {
-        if ($this->nickname != $orig->nickname) {
-            $local = User::getKV('id', $this->id);
-            if ($local instanceof User) {
-                common_debug("Updating User ({$this->id}) nickname from {$orig->nickname} to {$this->nickname}");
+        if (is_object($dataObject) && $this->nickname != $dataObject->nickname) {
+            try {
+                $local = $this->getUser();
+                common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}");
                 $origuser = clone($local);
                 $local->nickname = $this->nickname;
                 $result = $local->updateKeys($origuser);
@@ -861,10 +861,12 @@ class Profile extends Managed_DataObject
                 if ($local->hasRole(Profile_role::OWNER)) {
                     User::blow('user:site_owner');
                 }
+            } catch (NoSuchUserException $e) {
+                // Nevermind...
             }
         }
 
-        return parent::update($orig);
+        return parent::update($dataObject);
     }
 
     function delete()
@@ -1349,6 +1351,26 @@ class Profile extends Managed_DataObject
         return $uri;
     }
 
+    /**
+     * Returns an assumed acct: URI for a profile. Plugins are required.
+     *
+     * @return string $uri
+     */
+    public function getAcctUri()
+    {
+        $acct = null;
+
+        if (Event::handle('StartGetProfileAcctUri', array($this, &$acct))) {
+            Event::handle('EndGetProfileAcctUri', array($this, &$acct));
+        }
+
+        if ($acct === null) {
+            throw new ProfileNoAcctUriException($this);
+        }
+
+        return $acct;
+    }
+
     function hasBlocked($other)
     {
         $block = Profile_block::exists($this, $other);
@@ -1376,7 +1398,7 @@ class Profile extends Managed_DataObject
         $profile = null;
 
         if (Event::handle('StartGetProfileFromURI', array($uri, &$profile))) {
-            // Get a local user or remote (OMB 0.1) profile
+            // Get a local user
             $user = User::getKV('uri', $uri);
             if (!empty($user)) {
                 $profile = $user->getProfile();