]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Profile.php
Merge commit 'refs/merge-requests/43' of https://gitorious.org/social/mainline into...
[quix0rs-gnu-social.git] / classes / Profile.php
index 1af29b262090c11d94de624f6ad1feff7d073a73..0b608fbb24883164733d90560d8c9a8c1c5cbbcc 100644 (file)
@@ -155,6 +155,11 @@ class Profile extends Managed_DataObject
 
     public function setOriginal($filename)
     {
+        if ($this->isGroup()) {
+            // Until Group avatars are handled just like profile avatars.
+            return $this->getGroup()->setOriginal($filename);
+        }
+
         $imagefile = new ImageFile($this->id, Avatar::path($filename));
 
         $avatar = new Avatar();
@@ -305,7 +310,7 @@ class Profile extends Managed_DataObject
         }
 
         try {
-            return User_group::listFind('id', $ids);
+            return User_group::multiGet('id', $ids);
         } catch (NoResultException $e) {
             return null;    // throw exception when we handle it everywhere
         }
@@ -593,7 +598,7 @@ class Profile extends Managed_DataObject
     {
         $subs = Subscription::getSubscribedIDs($this->id, $offset, $limit);
         try {
-            $profiles = Profile::listFind('id', $subs);
+            $profiles = Profile::multiGet('id', $subs);
         } catch (NoResultException $e) {
             return $e->obj;
         }
@@ -604,7 +609,7 @@ class Profile extends Managed_DataObject
     {
         $subs = Subscription::getSubscriberIDs($this->id, $offset, $limit);
         try {
-            $profiles = Profile::listFind('id', $subs);
+            $profiles = Profile::multiGet('id', $subs);
         } catch (NoResultException $e) {
             return $e->obj;
         }
@@ -838,12 +843,8 @@ class Profile extends Managed_DataObject
                 common_debug("Updating User ({$this->id}) nickname from {$dataObject->nickname} to {$this->nickname}");
                 $origuser = clone($local);
                 $local->nickname = $this->nickname;
-                $result = $local->updateKeys($origuser);
-                if ($result === false) {
-                    common_log_db_error($local, 'UPDATE', __FILE__);
-                    // TRANS: Server error thrown when user profile settings could not be updated.
-                    throw new ServerException(_('Could not update user nickname.'));
-                }
+                // updateWithKeys throws exception on failure.
+                $local->updateWithKeys($origuser);
 
                 // Clear the site owner, in case nickname changed
                 if ($local->hasRole(Profile_role::OWNER)) {
@@ -861,7 +862,6 @@ class Profile extends Managed_DataObject
     {
         $this->_deleteNotices();
         $this->_deleteSubscriptions();
-        $this->_deleteMessages();
         $this->_deleteTags();
         $this->_deleteBlocks();
         $this->_deleteAttentions();
@@ -937,17 +937,6 @@ class Profile extends Managed_DataObject
         $self->delete();
     }
 
-    function _deleteMessages()
-    {
-        $msg = new Message();
-        $msg->from_profile = $this->id;
-        $msg->delete();
-
-        $msg = new Message();
-        $msg->to_profile = $this->id;
-        $msg->delete();
-    }
-
     function _deleteTags()
     {
         $tag = new Profile_tag();
@@ -1577,8 +1566,23 @@ class Profile extends Managed_DataObject
         return $this->getUser()->shortenLinks($text, $always);
     }
 
+    public function delPref($namespace, $topic) {
+        return Profile_prefs::setData($this, $namespace, $topic, null);
+    }
+
     public function getPref($namespace, $topic, $default=null) {
-        return Profile_prefs::getData($this, $namespace, $topic, $default);
+        // If you want an exception to be thrown, call Profile_prefs::getData directly
+        try {
+            return Profile_prefs::getData($this, $namespace, $topic, $default);
+        } catch (NoResultException $e) {
+            return null;
+        }
+    }
+
+    // The same as getPref but will fall back to common_config value for the same namespace/topic
+    public function getConfigPref($namespace, $topic)
+    {
+        return Profile_prefs::getConfigData($this, $namespace, $topic);
     }
 
     public function setPref($namespace, $topic, $data) {