summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-05-27 13:49:23 -0700
committerZach Copley <zach@status.net>2010-05-27 13:49:23 -0700
commitc5b61078e1548fba2820620e2e8f5fcbbda611a8 (patch)
treec3073b1f909814fb75a1a0f4da1980df2ec754c7
parent3e9b35677746ba0a9877fd1a20ef4e3ae52bc7b5 (diff)
Pass auth user into Atom feed generators (needed for outputting favorited status in statusnet:notice_info tag)
-rw-r--r--actions/apitimelinefavorites.php2
-rw-r--r--actions/apitimelinefriends.php2
-rw-r--r--actions/apitimelinegroup.php2
-rw-r--r--actions/apitimelinehome.php2
-rw-r--r--actions/apitimelinementions.php2
-rw-r--r--actions/apitimelinepublic.php2
-rw-r--r--actions/apitimelineretweetsofme.php2
-rw-r--r--actions/apitimelinetag.php2
-rw-r--r--actions/apitimelineuser.php2
-rw-r--r--lib/atomgroupnoticefeed.php5
-rw-r--r--lib/atomnoticefeed.php17
-rw-r--r--lib/atomusernoticefeed.php5
12 files changed, 30 insertions, 15 deletions
diff --git a/actions/apitimelinefavorites.php b/actions/apitimelinefavorites.php
index 79632447e..a889b4918 100644
--- a/actions/apitimelinefavorites.php
+++ b/actions/apitimelinefavorites.php
@@ -150,7 +150,7 @@ class ApiTimelineFavoritesAction extends ApiBareAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelinefriends.php b/actions/apitimelinefriends.php
index ac350ab1b..9c6ffcf9c 100644
--- a/actions/apitimelinefriends.php
+++ b/actions/apitimelinefriends.php
@@ -152,7 +152,7 @@ class ApiTimelineFriendsAction extends ApiBareAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelinegroup.php b/actions/apitimelinegroup.php
index 56d1de094..76fa74767 100644
--- a/actions/apitimelinegroup.php
+++ b/actions/apitimelinegroup.php
@@ -105,7 +105,7 @@ class ApiTimelineGroupAction extends ApiPrivateAuthAction
function showTimeline()
{
// We'll pull common formatting out of this for other formats
- $atom = new AtomGroupNoticeFeed($this->group);
+ $atom = new AtomGroupNoticeFeed($this->group, $this->auth_user);
$self = $this->getSelfUri();
diff --git a/actions/apitimelinehome.php b/actions/apitimelinehome.php
index 1618c9923..2a6b7bf5c 100644
--- a/actions/apitimelinehome.php
+++ b/actions/apitimelinehome.php
@@ -151,7 +151,7 @@ class ApiTimelineHomeAction extends ApiBareAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelinementions.php b/actions/apitimelinementions.php
index c3aec7c5a..dc39122e5 100644
--- a/actions/apitimelinementions.php
+++ b/actions/apitimelinementions.php
@@ -151,7 +151,7 @@ class ApiTimelineMentionsAction extends ApiBareAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelinepublic.php b/actions/apitimelinepublic.php
index 903461425..49062e603 100644
--- a/actions/apitimelinepublic.php
+++ b/actions/apitimelinepublic.php
@@ -130,7 +130,7 @@ class ApiTimelinePublicAction extends ApiPrivateAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelineretweetsofme.php b/actions/apitimelineretweetsofme.php
index c77912fd0..ea922fc42 100644
--- a/actions/apitimelineretweetsofme.php
+++ b/actions/apitimelineretweetsofme.php
@@ -117,7 +117,7 @@ class ApiTimelineRetweetsOfMeAction extends ApiAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelinetag.php b/actions/apitimelinetag.php
index fed1437ea..c21b22702 100644
--- a/actions/apitimelinetag.php
+++ b/actions/apitimelinetag.php
@@ -138,7 +138,7 @@ class ApiTimelineTagAction extends ApiPrivateAuthAction
header('Content-Type: application/atom+xml; charset=utf-8');
- $atom = new AtomNoticeFeed();
+ $atom = new AtomNoticeFeed($this->auth_user);
$atom->setId($id);
$atom->setTitle($title);
diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php
index 11431a82c..9ee6abaf5 100644
--- a/actions/apitimelineuser.php
+++ b/actions/apitimelineuser.php
@@ -115,7 +115,7 @@ class ApiTimelineUserAction extends ApiBareAuthAction
// We'll use the shared params from the Atom stub
// for other feed types.
- $atom = new AtomUserNoticeFeed($this->user);
+ $atom = new AtomUserNoticeFeed($this->user, $this->auth_user);
$link = common_local_url(
'showstream',
diff --git a/lib/atomgroupnoticefeed.php b/lib/atomgroupnoticefeed.php
index 08c1c707c..7934a4f9e 100644
--- a/lib/atomgroupnoticefeed.php
+++ b/lib/atomgroupnoticefeed.php
@@ -50,12 +50,13 @@ class AtomGroupNoticeFeed extends AtomNoticeFeed
* Constructor
*
* @param Group $group the group for the feed
+ * @param User $cur the current authenticated user, if any
* @param boolean $indent flag to turn indenting on or off
*
* @return void
*/
- function __construct($group, $indent = true) {
- parent::__construct($indent);
+ function __construct($group, $cur = null, $indent = true) {
+ parent::__construct($cur, $indent);
$this->group = $group;
$title = sprintf(_("%s timeline"), $group->nickname);
diff --git a/lib/atomnoticefeed.php b/lib/atomnoticefeed.php
index 35a45118c..ef44de4b6 100644
--- a/lib/atomnoticefeed.php
+++ b/lib/atomnoticefeed.php
@@ -44,9 +44,22 @@ if (!defined('STATUSNET'))
*/
class AtomNoticeFeed extends Atom10Feed
{
- function __construct($indent = true) {
+ var $cur;
+
+ /**
+ * Constructor - adds a bunch of XML namespaces we need in our
+ * notice-specific Atom feeds, and allows setting the current
+ * authenticated user (useful for API methods).
+ *
+ * @param User $cur the current authenticated user (optional)
+ * @param boolean $indent Whether to indent XML output
+ *
+ */
+ function __construct($cur = null, $indent = true) {
parent::__construct($indent);
+ $this->cur = $cur;
+
// Feeds containing notice info use these namespaces
$this->addNamespace(
@@ -115,7 +128,7 @@ class AtomNoticeFeed extends Atom10Feed
$source = $this->showSource();
$author = $this->showAuthor();
- $cur = common_current_user();
+ $cur = empty($this->cur) ? common_current_user() : $this->cur;
$this->addEntryRaw($notice->asAtomEntry(false, $source, $author, $cur));
}
diff --git a/lib/atomusernoticefeed.php b/lib/atomusernoticefeed.php
index 428cc2de2..b569d9379 100644
--- a/lib/atomusernoticefeed.php
+++ b/lib/atomusernoticefeed.php
@@ -50,13 +50,14 @@ class AtomUserNoticeFeed extends AtomNoticeFeed
* Constructor
*
* @param User $user the user for the feed
+ * @param User $cur the current authenticated user, if any
* @param boolean $indent flag to turn indenting on or off
*
* @return void
*/
- function __construct($user, $indent = true) {
- parent::__construct($indent);
+ function __construct($user, $cur = null, $indent = true) {
+ parent::__construct($cur, $indent);
$this->user = $user;
if (!empty($user)) {
$profile = $user->getProfile();