summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Profile.php23
-rw-r--r--classes/User.php7
-rw-r--r--lib/profileaction.php10
-rw-r--r--lib/userprofile.php14
4 files changed, 38 insertions, 16 deletions
diff --git a/classes/Profile.php b/classes/Profile.php
index 37d2c571f..b11cffc77 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -473,6 +473,29 @@ class Profile extends Memcached_DataObject
return $cnt;
}
+ /**
+ * Is this profile subscribed to another profile?
+ *
+ * @param Profile $other
+ * @return boolean
+ */
+ function isSubscribed($other)
+ {
+ return Subscription::exists($this, $other);
+ }
+
+ /**
+ * Are these two profiles subscribed to each other?
+ *
+ * @param Profile $other
+ * @return boolean
+ */
+ function mutuallySubscribed($other)
+ {
+ return $this->isSubscribed($other) &&
+ $other->isSubscribed($this);
+ }
+
function hasFave($notice)
{
$cache = common_memcache();
diff --git a/classes/User.php b/classes/User.php
index 7345dc7f9..964bc3e7f 100644
--- a/classes/User.php
+++ b/classes/User.php
@@ -84,7 +84,8 @@ class User extends Memcached_DataObject
function isSubscribed($other)
{
- return Subscription::exists($this->getProfile(), $other);
+ $profile = $this->getProfile();
+ return $profile->isSubscribed($other);
}
// 'update' won't write key columns, so we have to do it ourselves.
@@ -418,8 +419,8 @@ class User extends Memcached_DataObject
function mutuallySubscribed($other)
{
- return $this->isSubscribed($other) &&
- $other->isSubscribed($this);
+ $profile = $this->getProfile();
+ return $profile->mutuallySubscribed($other);
}
function mutuallySubscribedUsers()
diff --git a/lib/profileaction.php b/lib/profileaction.php
index 504b77566..4bfc4d48d 100644
--- a/lib/profileaction.php
+++ b/lib/profileaction.php
@@ -101,7 +101,7 @@ class ProfileAction extends OwnerDesignAction
function showSubscriptions()
{
- $profile = $this->user->getSubscriptions(0, PROFILES_PER_MINILIST + 1);
+ $profile = $this->profile->getSubscriptions(0, PROFILES_PER_MINILIST + 1);
$this->elementStart('div', array('id' => 'entity_subscriptions',
'class' => 'section'));
@@ -134,7 +134,7 @@ class ProfileAction extends OwnerDesignAction
function showSubscribers()
{
- $profile = $this->user->getSubscribers(0, PROFILES_PER_MINILIST + 1);
+ $profile = $this->profile->getSubscribers(0, PROFILES_PER_MINILIST + 1);
$this->elementStart('div', array('id' => 'entity_subscribers',
'class' => 'section'));
@@ -173,7 +173,7 @@ class ProfileAction extends OwnerDesignAction
$subs_count = $this->profile->subscriptionCount();
$subbed_count = $this->profile->subscriberCount();
$notice_count = $this->profile->noticeCount();
- $group_count = $this->user->getGroups()->N;
+ $group_count = $this->profile->getGroups()->N;
$age_days = (time() - strtotime($this->profile->created)) / 86400;
if ($age_days < 1) {
// Rather than extrapolating out to a bajillion...
@@ -241,7 +241,7 @@ class ProfileAction extends OwnerDesignAction
function showGroups()
{
- $groups = $this->user->getGroups(0, GROUPS_PER_MINILIST + 1);
+ $groups = $this->profile->getGroups(0, GROUPS_PER_MINILIST + 1);
$this->elementStart('div', array('id' => 'entity_groups',
'class' => 'section'));
@@ -249,7 +249,7 @@ class ProfileAction extends OwnerDesignAction
$this->element('h2', null, _('Groups'));
if ($groups) {
- $gml = new GroupMiniList($groups, $this->user, $this);
+ $gml = new GroupMiniList($groups, $this->profile, $this);
$cnt = $gml->show();
if ($cnt == 0) {
$this->element('p', null, _('(None)'));
diff --git a/lib/userprofile.php b/lib/userprofile.php
index ca060842b..0f48078d1 100644
--- a/lib/userprofile.php
+++ b/lib/userprofile.php
@@ -109,10 +109,8 @@ class UserProfile extends Widget
'alt' => $this->profile->nickname));
$this->out->elementEnd('dd');
- $user = User::staticGet('id', $this->profile->id);
-
$cur = common_current_user();
- if ($cur && $cur->id == $user->id) {
+ if ($cur && $cur->id == $this->profile->id) {
$this->out->elementStart('dd');
$this->out->element('a', array('href' => common_local_url('avatarsettings')), _('Edit Avatar'));
$this->out->elementEnd('dd');
@@ -278,7 +276,7 @@ class UserProfile extends Widget
}
$this->out->elementEnd('li');
- if ($cur->mutuallySubscribed($this->user)) {
+ if ($cur->mutuallySubscribed($this->profile)) {
// message
@@ -290,7 +288,7 @@ class UserProfile extends Widget
// nudge
- if ($this->user->email && $this->user->emailnotifynudge) {
+ if ($this->user && $this->user->email && $this->user->emailnotifynudge) {
$this->out->elementStart('li', 'entity_nudge');
$nf = new NudgeForm($this->out, $this->user);
$nf->show();
@@ -327,7 +325,7 @@ class UserProfile extends Widget
$this->out->elementStart('ul');
if ($cur->hasRight(Right::SANDBOXUSER)) {
$this->out->elementStart('li', 'entity_sandbox');
- if ($this->user->isSandboxed()) {
+ if ($this->profile->isSandboxed()) {
$usf = new UnSandboxForm($this->out, $this->profile, $r2args);
$usf->show();
} else {
@@ -339,7 +337,7 @@ class UserProfile extends Widget
if ($cur->hasRight(Right::SILENCEUSER)) {
$this->out->elementStart('li', 'entity_silence');
- if ($this->user->isSilenced()) {
+ if ($this->profile->isSilenced()) {
$usf = new UnSilenceForm($this->out, $this->profile, $r2args);
$usf->show();
} else {
@@ -387,7 +385,7 @@ class UserProfile extends Widget
$r2args['action'] = $action;
$this->out->elementStart('li', "entity_role_$role");
- if ($this->user->hasRole($role)) {
+ if ($this->profile->hasRole($role)) {
$rf = new RevokeRoleForm($role, $label, $this->out, $this->profile, $r2args);
$rf->show();
} else {