diff --git a/actions/showgroup.php b/actions/showgroup.php index 9a12bafaf6..8e8ff717c1 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -298,12 +298,12 @@ class ShowgroupAction extends GroupDesignAction $this->elementEnd('div'); + $cur = common_current_user(); $this->elementStart('div', 'entity_actions'); $this->element('h2', null, _('Group actions')); $this->elementStart('ul'); $this->elementStart('li', 'entity_subscribe'); if (Event::handle('StartGroupSubscribe', array($this, $this->group))) { - $cur = common_current_user(); if ($cur) { if ($cur->isMember($this->group)) { $lf = new LeaveForm($this, $this->group); @@ -316,7 +316,7 @@ class ShowgroupAction extends GroupDesignAction Event::handle('EndGroupSubscribe', array($this, $this->group)); } $this->elementEnd('li'); - if ($cur->hasRight(Right::DELETEGROUP)) { + if ($cur && $cur->hasRight(Right::DELETEGROUP)) { $this->elementStart('li', 'entity_delete'); $df = new DeleteGroupForm($this, $this->group); $df->show(); diff --git a/classes/User.php b/classes/User.php index f381ec6070..7345dc7f94 100644 --- a/classes/User.php +++ b/classes/User.php @@ -889,13 +889,23 @@ class User extends Memcached_DataObject static function singleUser() { if (common_config('singleuser', 'enabled')) { + + $user = null; + $nickname = common_config('singleuser', 'nickname'); - if ($nickname) { + + if (!empty($nickname)) { $user = User::staticGet('nickname', $nickname); - } else { + } + + // if there was no nickname or no user by that nickname, + // try the site owner. + + if (empty($user)) { $user = User::siteOwner(); } - if ($user) { + + if (!empty($user)) { return $user; } else { // TRANS: Server exception. diff --git a/lib/ping.php b/lib/ping.php index be2933ae34..abf1c4048e 100644 --- a/lib/ping.php +++ b/lib/ping.php @@ -27,7 +27,14 @@ function ping_broadcast_notice($notice) { # Array of servers, URL => type $notify = common_config('ping', 'notify'); - $profile = $notice->getProfile(); + try { + $profile = $notice->getProfile(); + } catch (Exception $e) { + // @todo: distinguish the 'broken notice/profile' case from more general + // transitory errors. + common_log(LOG_ERR, "Exception getting notice profile: " . $e->getMessage()); + return true; + } $tags = ping_notice_tags($notice); foreach ($notify as $notify_url => $type) {