summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-10-28 13:01:10 -0700
committerBrion Vibber <brion@pobox.com>2010-10-28 13:01:10 -0700
commit8d0c014ced78b3b6328105e2a82e3776059b600a (patch)
tree9b82888ca3339c56617703d06fa4a598f15690d4
parent48492600a8fd52574732b361e3e9f12fba4a07e3 (diff)
parentfb0c3f4f991464e36932137730743131f8ace68c (diff)
Merge branch 'master' into 0.9.x
-rw-r--r--actions/showgroup.php4
-rw-r--r--classes/User.php16
-rw-r--r--lib/ping.php9
3 files changed, 23 insertions, 6 deletions
diff --git a/actions/showgroup.php b/actions/showgroup.php
index 9a12bafaf..8e8ff717c 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 f381ec607..7345dc7f9 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 be2933ae3..abf1c4048 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) {