]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/User.php
Add error logging for a couple send-fail cases in XMPP out
[quix0rs-gnu-social.git] / classes / User.php
index 27299e62e04f2db7fd0410da82fe8e2ef16f7aa5..7345dc7f94ad68aa31277d4a9a21ad4d0a21d00e 100644 (file)
@@ -482,17 +482,8 @@ class User extends Memcached_DataObject
 
     function blowFavesCache()
     {
-        $cache = common_memcache();
-        if ($cache) {
-            // Faves don't happen chronologically, so we need to blow
-            // ;last cache, too
-            $cache->delete(common_cache_key('fave:ids_by_user:'.$this->id));
-            $cache->delete(common_cache_key('fave:ids_by_user:'.$this->id.';last'));
-            $cache->delete(common_cache_key('fave:ids_by_user_own:'.$this->id));
-            $cache->delete(common_cache_key('fave:ids_by_user_own:'.$this->id.';last'));
-        }
         $profile = $this->getProfile();
-        $profile->blowFaveCount();
+        $profile->blowFavesCache();
     }
 
     function getSelfTags()
@@ -884,4 +875,45 @@ class User extends Memcached_DataObject
 
         return $owner;
     }
+
+    /**
+     * Pull the primary site account to use in single-user mode.
+     * If a valid user nickname is listed in 'singleuser':'nickname'
+     * in the config, this will be used; otherwise the site owner
+     * account is taken by default.
+     *
+     * @return User
+     * @throws ServerException if no valid single user account is present
+     * @throws ServerException if called when not in single-user mode
+     */
+    static function singleUser()
+    {
+        if (common_config('singleuser', 'enabled')) {
+
+            $user = null;
+
+            $nickname = common_config('singleuser', 'nickname');
+
+            if (!empty($nickname)) {
+                $user = User::staticGet('nickname', $nickname);
+            }
+
+            // if there was no nickname or no user by that nickname,
+            // try the site owner.
+
+            if (empty($user)) {
+                $user = User::siteOwner();
+            }
+
+            if (!empty($user)) {
+                return $user;
+            } else {
+                // TRANS: Server exception.
+                throw new ServerException(_('No single user defined for single-user mode.'));
+            }
+        } else {
+            // TRANS: Server exception.
+            throw new ServerException(_('Single-user mode code called when not enabled.'));
+        }
+    }
 }