]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
authorEvan Prodromou <evan@status.net>
Fri, 19 Mar 2010 01:57:38 +0000 (20:57 -0500)
committerEvan Prodromou <evan@status.net>
Fri, 19 Mar 2010 01:57:38 +0000 (20:57 -0500)
Conflicts:
plugins/OStatus/extlib/hkit/hkit.class.php
plugins/OStatus/lib/discoveryhints.php

actions/apistatusesupdate.php
actions/avatarsettings.php
actions/sitenoticeadminpanel.php
classes/Subscription.php
classes/User.php
lib/activity.php
lib/imagefile.php
plugins/OStatus/actions/ostatussub.php
plugins/OStatus/classes/Ostatus_profile.php
plugins/OStatus/lib/linkheader.php

index bf367e1e181741e4d5626bd6332f0ae5432cc713..1956c85863d747173b4a15c8cc30e10f9caefe43 100644 (file)
@@ -244,11 +244,17 @@ class ApiStatusesUpdateAction extends ApiAuthAction
                 $options = array_merge($options, $locOptions);
             }
 
-            $this->notice =
-              Notice::saveNew($this->auth_user->id,
-                              $content,
-                              $this->source,
-                              $options);
+            try {
+                $this->notice = Notice::saveNew(
+                    $this->auth_user->id,
+                    $content,
+                    $this->source,
+                    $options
+                );
+            } catch (Exception $e) {
+                $this->clientError($e->getMessage());
+                return;
+            }
 
             if (isset($upload)) {
                 $upload->attachToNotice($this->notice);
index 6a7398746ae8f8ec2a5916812f588202c2487f8d..d4ea11cb7e9deb03b3857e4abff3ee4608d5cd76 100644 (file)
@@ -301,6 +301,10 @@ class AvatarsettingsAction extends AccountSettingsAction
             $this->showForm($e->getMessage());
             return;
         }
+        if ($imagefile === null) {
+            $this->showForm(_('No file uploaded.'));
+            return;
+        }
 
         $cur = common_current_user();
 
index 3931aa9825f7482ca81ac8e9a8dec148cd51db9f..a68cc699ca5cb52cb529724e3c7637f23fc04659 100644 (file)
@@ -93,7 +93,7 @@ class SitenoticeadminpanelAction extends AdminPanelAction
         // assert(all values are valid);
         // This throws an exception on validation errors
 
-        $this->validate(&$siteNotice);
+        $this->validate($siteNotice);
 
         $config = new Config();
 
index 5ac95f92222a1aa9b80f12b5610859645a9b1510..60c12cccc3d8d67545679355d2eb944e6e9f0612 100644 (file)
@@ -62,6 +62,14 @@ class Subscription extends Memcached_DataObject
 
     static function start($subscriber, $other)
     {
+        // @fixme should we enforce this as profiles in callers instead?
+        if ($subscriber instanceof User) {
+            $subscriber = $subscriber->getProfile();
+        }
+        if ($other instanceof User) {
+            $other = $other->getProfile();
+        }
+
         if (!$subscriber->hasRight(Right::SUBSCRIBE)) {
             throw new Exception(_('You have been banned from subscribing.'));
         }
@@ -75,20 +83,7 @@ class Subscription extends Memcached_DataObject
         }
 
         if (Event::handle('StartSubscribe', array($subscriber, $other))) {
-
-            $sub = new Subscription();
-
-            $sub->subscriber = $subscriber->id;
-            $sub->subscribed = $other->id;
-            $sub->created    = common_sql_now();
-
-            $result = $sub->insert();
-
-            if (!$result) {
-                common_log_db_error($sub, 'INSERT', __FILE__);
-                throw new Exception(_('Could not save subscription.'));
-            }
-
+            $sub = self::saveNew($subscriber->id, $other->id);
             $sub->notify();
 
             self::blow('user:notices_with_friends:%d', $subscriber->id);
@@ -103,20 +98,11 @@ class Subscription extends Memcached_DataObject
                 !self::exists($other, $subscriber) &&
                 !$subscriber->hasBlocked($other)) {
 
-                $auto = new Subscription();
-
-                $auto->subscriber = $other->id;
-                $auto->subscribed = $subscriber->id;
-                $auto->created    = common_sql_now();
-
-                $result = $auto->insert();
-
-                if (!$result) {
-                    common_log_db_error($auto, 'INSERT', __FILE__);
-                    throw new Exception(_('Could not save subscription.'));
+                try {
+                    self::start($other, $subscriber);
+                } catch (Exception $e) {
+                    common_log(LOG_ERR, "Exception during autosubscribe of {$other->nickname} to profile {$subscriber->id}: {$e->getMessage()}");
                 }
-
-                $auto->notify();
             }
 
             Event::handle('EndSubscribe', array($subscriber, $other));
@@ -125,6 +111,30 @@ class Subscription extends Memcached_DataObject
         return true;
     }
 
+    /**
+     * Low-level subscription save.
+     * Outside callers should use Subscription::start()
+     */
+    protected function saveNew($subscriber_id, $other_id)
+    {
+        $sub = new Subscription();
+
+        $sub->subscriber = $subscriber_id;
+        $sub->subscribed = $other_id;
+        $sub->jabber     = 1;
+        $sub->sms        = 1;
+        $sub->created    = common_sql_now();
+
+        $result = $sub->insert();
+
+        if (!$result) {
+            common_log_db_error($sub, 'INSERT', __FILE__);
+            throw new Exception(_('Could not save subscription.'));
+        }
+
+        return $sub;
+    }
+
     function notify()
     {
         # XXX: add other notifications (Jabber, SMS) here
index 16c256535b7ffe22efd01ecec492cbc0316f6378..8ad2ec63d5c81d12cbf6c3b35c7eb41b8cac5e60 100644 (file)
@@ -153,19 +153,12 @@ class User extends Memcached_DataObject
         return Sms_carrier::staticGet('id', $this->carrier);
     }
 
+    /**
+     * @deprecated use Subscription::start($sub, $other);
+     */
     function subscribeTo($other)
     {
-        $sub = new Subscription();
-        $sub->subscriber = $this->id;
-        $sub->subscribed = $other->id;
-
-        $sub->created = common_sql_now(); // current time
-
-        if (!$sub->insert()) {
-            return false;
-        }
-
-        return true;
+        return Subscription::start($this->getProfile(), $other);
     }
 
     function hasBlocked($other)
@@ -346,17 +339,7 @@ class User extends Memcached_DataObject
                     common_log(LOG_WARNING, sprintf("Default user %s does not exist.", $defnick),
                                __FILE__);
                 } else {
-                    $defsub = new Subscription();
-                    $defsub->subscriber = $user->id;
-                    $defsub->subscribed = $defuser->id;
-                    $defsub->created = $user->created;
-
-                    $result = $defsub->insert();
-
-                    if (!$result) {
-                        common_log_db_error($defsub, 'INSERT', __FILE__);
-                        return false;
-                    }
+                    Subscription::start($user, $defuser);
                 }
             }
 
index d84eabf7c4ad5d3cfa892195dafceb913c39429c..c67d090f725fedcaa5ce7dc7cda9ebd8530a91e8 100644 (file)
@@ -720,7 +720,7 @@ class ActivityObject
         }
     }
 
-    static function fromNotice($notice)
+    static function fromNotice(Notice $notice)
     {
         $object = new ActivityObject();
 
@@ -734,7 +734,7 @@ class ActivityObject
         return $object;
     }
 
-    static function fromProfile($profile)
+    static function fromProfile(Profile $profile)
     {
         $object = new ActivityObject();
 
index 2134623b18ca1686ff17a43db35d50c56e277086..e4728774103860c9cbc6034f2850d7d86ca2216c 100644 (file)
@@ -67,10 +67,8 @@ class ImageFile
             $info[2] == IMAGETYPE_BMP ||
             ($info[2] == IMAGETYPE_WBMP && function_exists('imagecreatefromwbmp')) ||
             ($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) ||
-            ($info[2] == IMAGETYPE_XPM && function_exists('imagecreatefromxpm')) ||
             ($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) {
 
-            @unlink($_FILES[$param]['tmp_name']);
             throw new Exception(_('Unsupported image file format.'));
             return;
         }
@@ -161,9 +159,6 @@ class ImageFile
          case IMAGETYPE_XBM:
             $image_src = imagecreatefromxbm($this->filepath);
             break;
-         case IMAGETYPE_XPM:
-            $image_src = imagecreatefromxpm($this->filepath);
-            break;
          default:
             throw new Exception(_('Unknown file type'));
             return;
@@ -206,10 +201,6 @@ class ImageFile
             //we don't want to save XBM... it's a rare format that we can't guarantee clients will support
             //save png instead
             $this->type = IMAGETYPE_PNG;
-        } else if($this->type == IMAGETYPE_XPM) {
-            //we don't want to save XPM... it's a rare format that we can't guarantee clients will support
-            //save png instead
-            $this->type = IMAGETYPE_PNG;
         }
 
         $outname = Avatar::filename($this->id,
index 07081c2c6f1629a07fceaf40702c2eb6ecfd2791..994af6e95ccc8e0929e172a7a63e364be7ad5a3b 100644 (file)
@@ -299,7 +299,7 @@ class OStatusSubAction extends Action
         if ($user->isSubscribed($local)) {
             // TRANS: OStatus remote subscription dialog error.
             $this->showForm(_m('Already subscribed!'));
-        } elseif ($this->oprofile->subscribeLocalToRemote($user)) {
+        } elseif (Subscription::start($user, $local)) {
             $this->success();
         } else {
             // TRANS: OStatus remote subscription dialog error.
index f8fda4162adf4e0ff08b560eefc9efef140346bc..e77c8f7e920fce19736c3ffb9af4bdb2cca7a3e8 100644 (file)
@@ -194,52 +194,6 @@ class Ostatus_profile extends Memcached_DataObject
         }
     }
 
-    /**
-     * Subscribe a local user to this remote user.
-     * PuSH subscription will be started if necessary, and we'll
-     * send a Salmon notification to the remote server if available
-     * notifying them of the sub.
-     *
-     * @param User $user
-     * @return boolean success
-     * @throws FeedException
-     */
-    public function subscribeLocalToRemote(User $user)
-    {
-        if ($this->isGroup()) {
-            throw new ServerException("Can't subscribe to a remote group");
-        }
-
-        if ($this->subscribe()) {
-            if ($user->subscribeTo($this->localProfile())) {
-                $this->notify($user->getProfile(), ActivityVerb::FOLLOW, $this);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Mark this remote profile as subscribing to the given local user,
-     * and send appropriate notifications to the user.
-     *
-     * This will generally be in response to a subscription notification
-     * from a foreign site to our local Salmon response channel.
-     *
-     * @param User $user
-     * @return boolean success
-     */
-    public function subscribeRemoteToLocal(User $user)
-    {
-        if ($this->isGroup()) {
-            throw new ServerException("Remote groups can't subscribe to local users");
-        }
-
-        Subscription::start($this->localProfile(), $user->getProfile());
-
-        return true;
-    }
-
     /**
      * Send a subscription request to the hub for this feed.
      * The hub will later send us a confirmation POST to /main/push/callback.
@@ -1449,7 +1403,7 @@ class Ostatus_profile extends Memcached_DataObject
 
         if (array_key_exists('feedurl', $hints)) {
             try {
-                common_log(LOG_INFO, "Discovery on acct:$addr with feed URL $feedUrl");
+                common_log(LOG_INFO, "Discovery on acct:$addr with feed URL " . $hints['feedurl']);
                 $oprofile = self::ensureFeedURL($hints['feedurl'], $hints);
                 self::cacheSet(sprintf('ostatus_profile:webfinger:%s', $addr), $oprofile->uri);
                 return $oprofile;
index 2f6c66dc97acafec2a1c5567e7f56e66e2802671..afcd66d264d6be67b9337eeb6abddfd1d5cb6ea4 100644 (file)
@@ -43,21 +43,21 @@ class LinkHeader
     static function getLink($response, $rel=null, $type=null)
     {
         $headers = $response->getHeader('Link');
+        if ($headers) {
+            // Can get an array or string, so try to simplify the path
+            if (!is_array($headers)) {
+                $headers = array($headers);
+            }
 
-        // Can get an array or string, so try to simplify the path
-        if (!is_array($headers)) {
-            $headers = array($headers);
-        }
-
-        foreach ($headers as $header) {
-            $lh = new LinkHeader($header);
+            foreach ($headers as $header) {
+                $lh = new LinkHeader($header);
 
-            if ((is_null($rel) || $lh->rel == $rel) &&
-                (is_null($type) || $lh->type == $type)) {
-                return $lh->href;
+                if ((is_null($rel) || $lh->rel == $rel) &&
+                    (is_null($type) || $lh->type == $type)) {
+                    return $lh->href;
+                }
             }
         }
-
         return null;
     }
-}
\ No newline at end of file
+}