summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-11-15 15:32:57 -0800
committerBrion Vibber <brion@pobox.com>2010-11-15 15:32:57 -0800
commit0d0e51292d97e0b3a07cf1d12031df0b8f69823f (patch)
tree3ed9d20894079a5cc9a5a511b03b165c2183e34f
parent227d4b688949a70c1dd3923628a101e1f0208e15 (diff)
some User -> Profile cleanup to help in adapting the profile page action to show stuff for remote users. Subscriptions, groups, roles, etc are all on profiles now so go ahead and use em.
-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 {