]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
authorSarven Capadisli <csarven@status.net>
Thu, 7 Jan 2010 09:53:29 +0000 (09:53 +0000)
committerSarven Capadisli <csarven@status.net>
Thu, 7 Jan 2010 09:53:29 +0000 (09:53 +0000)
25 files changed:
actions/apigroupleave.php
actions/leavegroup.php
actions/twitapisearchatom.php
classes/Avatar.php
classes/Config.php
classes/Fave.php
classes/File_to_post.php
classes/Group_block.php
classes/Group_inbox.php
classes/Group_member.php
classes/Memcached_DataObject.php
classes/Notice_inbox.php
classes/Notice_tag.php
classes/Profile.php
classes/Profile_role.php
classes/Queue_item.php
classes/Subscription.php
lib/htmloutputter.php
lib/jsonsearchresultslist.php
plugins/LdapAuthorization/LdapAuthorizationPlugin.php
plugins/Minify/MinifyPlugin.php
plugins/OpenID/User_openid_trustroot.php
plugins/UserFlag/UserFlagPlugin.php
plugins/UserFlag/User_flag_profile.php
scripts/console.php

index 514a3a557da4e923dbe419e9cf150607c92cbfe2..5627bfc14643a5bb2ae6f78a5d9528c6d9008fac 100644 (file)
@@ -108,7 +108,7 @@ class ApiGroupLeaveAction extends ApiAuthAction
         $member = new Group_member();
 
         $member->group_id   = $this->group->id;
-        $member->profile_id = $this->auth->id;
+        $member->profile_id = $this->auth_user->id;
 
         if (!$member->find(true)) {
             $this->serverError(_('You are not a member of this group.'));
@@ -118,12 +118,12 @@ class ApiGroupLeaveAction extends ApiAuthAction
         $result = $member->delete();
 
         if (!$result) {
-            common_log_db_error($member, 'INSERT', __FILE__);
+            common_log_db_error($member, 'DELETE', __FILE__);
             $this->serverError(
                 sprintf(
-                    _('Could not remove user %s to group %s.'),
+                    _('Could not remove user %s from group %s.'),
                     $this->user->nickname,
-                    $this->$group->nickname
+                    $this->group->nickname
                 )
             );
             return;
index 08fce150980eb406fce36bf46ceff307bf66ba32..90c85e1a4e6e602eed57d7b552745564f8c41ae2 100644 (file)
@@ -123,8 +123,8 @@ class LeavegroupAction extends Action
         $result = $member->delete();
 
         if (!$result) {
-            common_log_db_error($member, 'INSERT', __FILE__);
-            $this->serverError(sprintf(_('Could not remove user %s to group %s'),
+            common_log_db_error($member, 'DELETE', __FILE__);
+            $this->serverError(sprintf(_('Could not remove user %s from group %s'),
                                        $cur->nickname, $this->group->nickname));
         }
 
index 1cb8d7efe6d507ced64fa7597e3683eefac4daee..baed2a0c7c24107cb15731489fc312974ea267c6 100644 (file)
@@ -208,7 +208,14 @@ class TwitapisearchatomAction extends ApiAction
         $this->showFeed();
 
         foreach ($notices as $n) {
-            $this->showEntry($n);
+
+            $profile = $n->getProfile();
+
+            // Don't show notices from deleted users
+
+            if (!empty($profile)) {
+                $this->showEntry($n);
+            }
         }
 
         $this->endAtom();
index 8d6424e8b2d1f53c5ccec912404ccde6ee7b26d9..91bde0f0401b6dc144b48a6ba434c312c80c967c 100644 (file)
@@ -37,7 +37,7 @@ class Avatar extends Memcached_DataObject
         }
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Avatar', $kv);
     }
index 6d914ca1f6e6a39b7e87c025be556c7e9a097d42..43b99587fa14971c2c66a32790d548da10f4e6c6 100644 (file)
@@ -120,7 +120,7 @@ class Config extends Memcached_DataObject
         return $result;
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Config', $kv);
     }
index 11e876ff19dcc1294aae6ddb8dfda6e7486eda11..8113c8e1668a508251323f117468da25d119f7f6 100644 (file)
@@ -32,7 +32,7 @@ class Fave extends Memcached_DataObject
         return $fave;
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Fave', $kv);
     }
index e3db91b205ab597f7c46dfdcd36f0dd01f953ed8..72a42b0880a46269ac22758c37798e2b8d411e8d 100644 (file)
@@ -62,7 +62,7 @@ class File_to_post extends Memcached_DataObject
         }
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('File_to_post', $kv);
     }
index de2cf5f6eb12c694a34d059f447e3ce4add972fd..9f4d592956eaf497ee7258a11ac049e66921af84 100644 (file)
@@ -40,7 +40,7 @@ class Group_block extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Group_block', $kv);
     }
index 1af7439f7f749e668824773aa6363012e77e33f2..2a0787e387dc8ea087060dfc447cf661121d0e74 100644 (file)
@@ -20,7 +20,7 @@ class Group_inbox extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Group_inbox', $kv);
     }
index 3c23a991f05f272e5f610d3bf62b724e83a343b8..069b2c7a1c75c4150a2a0263473ad60e9069868d 100644 (file)
@@ -21,7 +21,7 @@ class Group_member extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Group_member', $kv);
     }
index d11bd636823a18c8c4b598353ba57cc0316df890..4e3cc5678867d26e6d2f6cf47b9cf1b9b1a51433 100644 (file)
@@ -90,17 +90,16 @@ class Memcached_DataObject extends DB_DataObject
             unset($i);
         }
         $i = Memcached_DataObject::getcached($cls, $k, $v);
-        if ($i !== false) { // false == cache miss
-            return $i;
-        } else {
+        if ($i === false) { // false == cache miss
             $i = DB_DataObject::factory($cls);
             if (empty($i)) {
-                return false;
+                $i = false;
+                return $i;
             }
             $result = $i->get($k, $v);
             if ($result) {
+                // Hit!
                 $i->encache();
-                return $i;
             } else {
                 // save the fact that no such row exists
                 $c = self::memcache();
@@ -108,12 +107,16 @@ class Memcached_DataObject extends DB_DataObject
                     $ck = self::cachekey($cls, $k, $v);
                     $c->set($ck, null);
                 }
-                return false;
+                $i = false;
             }
         }
+        return $i;
     }
 
-    function &pkeyGet($cls, $kv)
+    /**
+     * @fixme Should this return false on lookup fail to match staticGet?
+     */
+    function pkeyGet($cls, $kv)
     {
         $i = Memcached_DataObject::multicache($cls, $kv);
         if ($i !== false) { // false == cache miss
@@ -143,7 +146,9 @@ class Memcached_DataObject extends DB_DataObject
     function insert()
     {
         $result = parent::insert();
-        $this->encache(); // in case of cached negative lookups
+        if ($result) {
+            $this->encache(); // in case of cached negative lookups
+        }
         return $result;
     }
 
index d3ddad656a7aae8492f1bee4d80afd3959193b92..e350e6e2f8469b0281f5edff0656cfc741f61db8 100644 (file)
@@ -101,7 +101,7 @@ class Notice_inbox extends Memcached_DataObject
         return $ids;
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Notice_inbox', $kv);
     }
index 02740280f5d402f959e9889303bcf847cd7091d7..79231f0b0c0777749c09cf91da451192ed55cb2f 100644 (file)
@@ -96,7 +96,7 @@ class Notice_tag extends Memcached_DataObject
         }
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Notice_tag', $kv);
     }
index 03196447b891e31ef5b09e7af9d97b6942cf24dd..25d908dbf93c22c1a24fb41cbd5a204d2478e825 100644 (file)
@@ -504,6 +504,7 @@ class Profile extends Memcached_DataObject
                          'Reply',
                          'Group_member',
                          );
+        Event::handle('ProfileDeleteRelated', array($this, &$related));
 
         foreach ($related as $cls) {
             $inst = new $cls();
index afa7fb74e49e0e5902c725fd3af246d0c2077b57..74aca3730501777d5ef9d8afdc8e05b91a90caf4 100644 (file)
@@ -43,7 +43,7 @@ class Profile_role extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Profile_role', $kv);
     }
index 295c321b57d4615fa5a139b9e14b9752fd19a4e3..9c673540d746a6a25d55a62ba6fffbe8d8b17b46 100644 (file)
@@ -55,7 +55,7 @@ class Queue_item extends Memcached_DataObject
         return null;
     }
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Queue_item', $kv);
     }
index fedfd5f19eeec5212a898fb967a00371dd23f56a..faf1331cda11565eec0655ea4a266079ceca0618 100644 (file)
@@ -46,7 +46,7 @@ class Subscription extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
     
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('Subscription', $kv);
     }
index 2091c6e2ca4d60fd4020f2ca91cfbcb09558c909..31660ce954982e365be8e68e05d179bda72cadbd 100644 (file)
@@ -352,7 +352,7 @@ class HTMLOutputter extends XMLOutputter
     {
         if(Event::handle('StartScriptElement', array($this,&$src,&$type))) {
             $url = parse_url($src);
-            if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
+            if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment']))
             {
                 $src = common_path($src) . '?version=' . STATUSNET_VERSION;
             }
index 569bfa87344c8997149d39c37ae70f139980d91a..0d72ddf7ab48184e41c371407ae9efefe6c940ea 100644 (file)
@@ -105,8 +105,14 @@ class JSONSearchResultsList
                 break;
             }
 
-            $item = new ResultItem($this->notice);
-            array_push($this->results, $item);
+            $profile = $this->notice->getProfile();
+
+            // Don't show notices from deleted users
+
+            if (!empty($profile)) {
+                $item = new ResultItem($this->notice);
+                array_push($this->results, $item);
+            }
         }
 
         $time_end           = microtime(true);
index 7673e61efbd4fe7a158f8f0980cae441a2a682b2..e5e22c0ddeab1dbce49cae5443166fc87bfdcac9 100644 (file)
@@ -52,7 +52,6 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin
     public $attributes = array();
 
     function onInitializePlugin(){
-        parent::onInitializePlugin();
         if(!isset($this->host)){
             throw new Exception("must specify a host");
         }
index 71fade19a5767a41fd6b080f2aa01be3f8e6dd1b..718bfd163530d92db7ed03c16acd14de55d04cb2 100644 (file)
@@ -84,7 +84,7 @@ class MinifyPlugin extends Plugin
 
     function onStartScriptElement($action,&$src,&$type) {
         $url = parse_url($src);
-        if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment))
+        if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment']))
         {
             $src = $this->minifyUrl($src);
         }
index 44288945be2fcaf3a4bdb908b1fc0da9117df1e3..0b411b8f7f11ba9e10cfa932cb58407809dc0f18 100644 (file)
@@ -22,7 +22,7 @@ class User_openid_trustroot extends Memcached_DataObject
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('User_openid_trustroot', $kv);
     }
index 602a5bfa881d20c6739b71269a09fcc6b87f2803..a33869c19ea2be076c4db748a100a1fb9e268b3f 100644 (file)
@@ -102,20 +102,20 @@ class UserFlagPlugin extends Plugin
 
     function onAutoload($cls)
     {
-        switch ($cls)
+        switch (strtolower($cls))
         {
-        case 'FlagprofileAction':
-        case 'AdminprofileflagAction':
-        case 'ClearflagAction':
+        case 'flagprofileaction':
+        case 'adminprofileflagaction':
+        case 'clearflagaction':
             include_once INSTALLDIR.'/plugins/UserFlag/' .
               strtolower(mb_substr($cls, 0, -6)) . '.php';
             return false;
-        case 'FlagProfileForm':
-        case 'ClearFlagForm':
+        case 'flagprofileform':
+        case 'clearflagform':
             include_once INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php');
             return false;
-        case 'User_flag_profile':
-            include_once INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php';
+        case 'user_flag_profile':
+            include_once INSTALLDIR.'/plugins/UserFlag/'.ucfirst(strtolower($cls)).'.php';
             return false;
         default:
             return true;
@@ -258,4 +258,39 @@ class UserFlagPlugin extends Plugin
         }
         return true;
     }
+
+    /**
+     * Ensure that flag entries for a profile are deleted
+     * along with the profile when deleting users.
+     * This prevents breakage of the admin profile flag UI.
+     *
+     * @param Profile $profile
+     * @param array &$related list of related tables; entries
+     *              with matching profile_id will be deleted.
+     *
+     * @return boolean hook result
+     */
+
+    function onProfileDeleteRelated($profile, &$related)
+    {
+        $related[] = 'user_flag_profile';
+        return true;
+    }
+
+    /**
+     * Ensure that flag entries created by a user are deleted
+     * when that user gets deleted.
+     *
+     * @param User $user
+     * @param array &$related list of related tables; entries
+     *              with matching user_id will be deleted.
+     *
+     * @return boolean hook result
+     */
+
+    function onUserDeleteRelated($user, &$related)
+    {
+        $related[] = 'user_flag_profile';
+        return true;
+    }
 }
index 658259452436aae780d56956ffe9841c7bf79391..bc4251cf7f11010d62128c4d196e0cd9602c86c7 100644 (file)
@@ -89,6 +89,17 @@ class User_flag_profile extends Memcached_DataObject
         return array('profile_id' => 'N', 'user_id' => 'N');
     }
 
+    /**
+     * return key definitions for DB_DataObject
+     *
+     * @return array key definitions
+     */
+
+    function keyTypes()
+    {
+        return $this->keys();
+    }
+
     /**
      * Get a single object with multiple keys
      *
@@ -97,7 +108,7 @@ class User_flag_profile extends Memcached_DataObject
      * @return User_flag_profile found object or null
      */
 
-    function &pkeyGet($kv)
+    function pkeyGet($kv)
     {
         return Memcached_DataObject::pkeyGet('User_flag_profile', $kv);
     }
index 329caf472407a4764d5b017a2dfedc5f9cba0cb3..8b62a3a96783d7a7442326f33007d4f859e8d4f3 100755 (executable)
@@ -128,6 +128,8 @@ function console_help()
 if (CONSOLE_INTERACTIVE) {
     print "StatusNet interactive PHP console... type ctrl+D or enter 'exit' to exit.\n";
     $prompt = common_config('site', 'name') . '> ';
+} else {
+    $prompt = '';
 }
 while (!feof(STDIN)) {
     $line = read_input_line($prompt);