Replace $this->user/auth_user with $this->scoped in lib/apiaction.php

We prefer handling a Profile class rather than the User class, as some
functions might be useful for remote users as well, which cannot be
handled via the User class.
This commit is contained in:
Mikael Nordfeldth 2015-02-17 17:16:33 +01:00
parent 61aa71ed34
commit 6cdedf6049
1 changed files with 30 additions and 39 deletions

View File

@ -264,22 +264,20 @@ class ApiAction extends Action
$twitter_user['statuses_count'] = $profile->noticeCount();
// Is the requesting user following this user?
// These values might actually also mean "unknown". Ambiguity issues?
$twitter_user['following'] = false;
$twitter_user['statusnet_blocking'] = false;
$twitter_user['notifications'] = false;
if (isset($this->auth_user)) {
$twitter_user['following'] = $this->auth_user->isSubscribed($profile);
$twitter_user['statusnet_blocking'] = $this->auth_user->hasBlocked($profile);
// Notifications on?
$sub = Subscription::pkeyGet(array('subscriber' =>
$this->auth_user->id,
'subscribed' => $profile->id));
if ($sub) {
if ($this->scoped instanceof Profile) {
try {
$sub = Subscription::getSubscription($this->scoped, $profile);
// Notifications on?
$twitter_user['following'] = true;
$twitter_user['statusnet_blocking'] = $this->scoped->hasBlocked($profile);
$twitter_user['notifications'] = ($sub->jabber || $sub->sms);
} catch (NoResultException $e) {
// well, the values are already false...
}
}
@ -430,11 +428,11 @@ class ApiAction extends Action
$twitter_group['nickname'] = $group->nickname;
$twitter_group['fullname'] = $group->fullname;
if (isset($this->auth_user)) {
$twitter_group['member'] = $this->auth_user->isMember($group);
if ($this->scoped instanceof Profile) {
$twitter_group['member'] = $this->scoped->isMember($group);
$twitter_group['blocked'] = Group_block::isBlocked(
$group,
$this->auth_user->getProfile()
$this->scoped
);
}
@ -485,8 +483,8 @@ class ApiAction extends Action
$twitter_list['member_count'] = $list->taggedCount();
$twitter_list['uri'] = $list->getUri();
if (isset($this->auth_user)) {
$twitter_list['following'] = $list->hasSubscriber($this->auth_user);
if ($this->scoped instanceof Profile) {
$twitter_list['following'] = $list->hasSubscriber($this->scoped);
} else {
$twitter_list['following'] = false;
}
@ -575,37 +573,30 @@ class ApiAction extends Action
$relationship = array();
$relationship['source'] =
$this->relationshipDetailsArray($source, $target);
$this->relationshipDetailsArray($source->getProfile(), $target->getProfile());
$relationship['target'] =
$this->relationshipDetailsArray($target, $source);
$this->relationshipDetailsArray($target->getProfile(), $source->getProfile());
return array('relationship' => $relationship);
}
function relationshipDetailsArray($source, $target)
function relationshipDetailsArray(Profile $source, Profile $target)
{
$details = array();
$source_profile = $source->getProfile();
$target_profile = $target->getProfile();
$details['screen_name'] = $source->getNickname();
$details['followed_by'] = $target->isSubscribed($source);
$details['screen_name'] = $source->nickname;
$details['followed_by'] = $target->isSubscribed($source_profile);
$details['following'] = $source->isSubscribed($target_profile);
$notifications = false;
if ($source->isSubscribed($target_profile)) {
$sub = Subscription::pkeyGet(array('subscriber' =>
$source->id, 'subscribed' => $target->id));
if (!empty($sub)) {
$notifications = ($sub->jabber || $sub->sms);
}
try {
$sub = Subscription::getSubscription($source, $target);
$details['following'] = true;
$details['notifications_enabled'] = ($sub->jabber || $sub->sms);
} catch (NoResultException $e) {
$details['following'] = false;
$details['notifications_enabled'] = false;
}
$details['notifications_enabled'] = $notifications;
$details['blocking'] = $source->hasBlocked($target_profile);
$details['blocking'] = $source->hasBlocked($target);
$details['id'] = intval($source->id);
return $details;
@ -788,7 +779,7 @@ class ApiAction extends Action
function showSingleAtomStatus($notice)
{
header('Content-Type: application/atom+xml; charset=utf-8');
print $notice->asAtomEntry(true, true, true, $this->auth_user);
print $notice->asAtomEntry(true, true, true, $this->scoped);
}
function show_single_json_status($notice)
@ -1352,7 +1343,7 @@ class ApiAction extends Action
return User::getKV('nickname', $nickname);
} else {
// Fall back to trying the currently authenticated user
return $this->auth_user;
return $this->scoped->getUser();
}
} else if (self::is_decimal($id)) {
@ -1448,7 +1439,7 @@ class ApiAction extends Action
}
if (!empty($list) && $list->private) {
if ($this->auth_user->id == $list->tagger) {
if ($this->scoped->id == $list->tagger) {
return $list;
}
} else {