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.

This commit is contained in:
Brion Vibber 2010-11-15 15:32:57 -08:00
parent 227d4b6889
commit 0d0e51292d
4 changed files with 38 additions and 16 deletions

View File

@ -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();

View File

@ -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()

View File

@ -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)'));

View File

@ -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 {