]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Fix regression in remote subscription; added hasRole() shadow method on Remote_profile.
authorBrion Vibber <brion@pobox.com>
Wed, 25 Nov 2009 22:10:55 +0000 (22:10 +0000)
committerBrion Vibber <brion@pobox.com>
Wed, 25 Nov 2009 22:23:21 +0000 (22:23 +0000)
DB_DataObject hides errors by silently returning null for any non-existent method call, making it harder to tell what the heck's going on... the rights check for blocked remote users returned null for the check for subscribe rights, thus eval'ing to false. We now log a note in this circumstance, which would have cut about 3 hours off of the debug time.

classes/Remote_profile.php
lib/oauthstore.php

index 9f7bfeadcc79e40582e95ab74c5d2ba22cb7330c..0a1676a6a97952ad56c43eda97f3463981235141 100644 (file)
@@ -43,4 +43,14 @@ class Remote_profile extends Memcached_DataObject
 
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
+    
+    function hasRight($right)
+    {
+        $profile = Profile::staticGet($this->id);
+        if ($profile) {
+            return $profile->hasright($right);
+        } else {
+            throw new Exception("Missing profile");
+        }
+    }
 }
index b04bcbb8b29896a922ceb651587fccdb7f9d0f1d..e34bf8a5ed8782d4430713caca155879447b3a56 100644 (file)
@@ -463,6 +463,7 @@ class StatusNetOAuthDataStore extends OAuthDataStore
         $subscriber = $this->_getAnyProfile($subscriber_uri);
 
         if (!$subscriber->hasRight(Right::SUBSCRIBE)) {
+            common_log(LOG_INFO, __METHOD__ . ": remote subscriber banned ($subscriber_uri subbing to $subscribed_user_uri)");
             return _('You have been banned from subscribing.');
         }