summaryrefslogtreecommitdiff
path: root/lib/userprofile.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/userprofile.php')
-rw-r--r--lib/userprofile.php25
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/userprofile.php b/lib/userprofile.php
index ca060842b..2813f735e 100644
--- a/lib/userprofile.php
+++ b/lib/userprofile.php
@@ -98,6 +98,10 @@ class UserProfile extends Widget
if (Event::handle('StartProfilePageAvatar', array($this->out, $this->profile))) {
$avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE);
+ if (!$avatar) {
+ // hack for remote Twitter users: no 96px, but large Twitter size is 73px
+ $avatar = $this->profile->getAvatar(73);
+ }
$this->out->elementStart('dl', 'entity_depiction');
$this->out->element('dt', null, _('Photo'));
@@ -109,10 +113,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 +280,7 @@ class UserProfile extends Widget
}
$this->out->elementEnd('li');
- if ($cur->mutuallySubscribed($this->user)) {
+ if ($cur->mutuallySubscribed($this->profile)) {
// message
@@ -290,7 +292,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();
@@ -319,6 +321,9 @@ class UserProfile extends Widget
}
$this->out->elementEnd('li');
+ // Some actions won't be applicable to non-local users.
+ $isLocal = !empty($this->user);
+
if ($cur->hasRight(Right::SANDBOXUSER) ||
$cur->hasRight(Right::SILENCEUSER) ||
$cur->hasRight(Right::DELETEUSER)) {
@@ -327,7 +332,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 +344,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 {
@@ -349,7 +354,7 @@ class UserProfile extends Widget
$this->out->elementEnd('li');
}
- if ($cur->hasRight(Right::DELETEUSER)) {
+ if ($isLocal && $cur->hasRight(Right::DELETEUSER)) {
$this->out->elementStart('li', 'entity_delete');
$df = new DeleteUserForm($this->out, $this->profile, $r2args);
$df->show();
@@ -359,7 +364,7 @@ class UserProfile extends Widget
$this->out->elementEnd('li');
}
- if ($cur->hasRight(Right::GRANTROLE)) {
+ if ($isLocal && $cur->hasRight(Right::GRANTROLE)) {
$this->out->elementStart('li', 'entity_role');
$this->out->element('p', null, _('User role'));
$this->out->elementStart('ul');
@@ -387,7 +392,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 {