From 4a6f509aa5277bb12ac3da1c281c3817bfeea788 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Sun, 10 May 2015 19:41:36 +0200 Subject: [PATCH 1/4] More automated htaccess.sample --- htaccess.sample | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htaccess.sample b/htaccess.sample index f7513cc0c7..af6e19784d 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -45,9 +45,11 @@ - # For mod_access_compat in Apache <2.4 - #Order allow,deny - - # Use this instead for Apache >2.4 (mod_authz_host) - # Require all denied + + Order allow,deny + Deny from all + + = 2.3> + Require all denied + From bb8d377b91c959d89e9b8099a97962d5c777f61d Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Tue, 26 May 2015 13:10:37 +0200 Subject: [PATCH 2/4] Redirect to group URL for /nickname pattern --- lib/profileaction.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/profileaction.php b/lib/profileaction.php index 5923640097..bd5bb5a148 100644 --- a/lib/profileaction.php +++ b/lib/profileaction.php @@ -66,6 +66,10 @@ abstract class ProfileAction extends ManagedAction $this->user = User::getKV('nickname', $nickname); if (!$this->user) { + $group = Local_group::getKV('nickname', $nickname); + if ($group instanceof Local_group) { + common_redirect($group->getProfile()->getUrl()); + } // TRANS: Client error displayed when calling a profile action without specifying a user. $this->clientError(_('No such user.'), 404); } From 925aacec1a09ade8acaaca2c604e33d17292fe40 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Tue, 26 May 2015 13:11:08 +0200 Subject: [PATCH 3/4] Throw exception when a Conversation is not found --- classes/Conversation.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/classes/Conversation.php b/classes/Conversation.php index 343668cc49..537c214a4c 100644 --- a/classes/Conversation.php +++ b/classes/Conversation.php @@ -108,7 +108,13 @@ class Conversation extends Managed_DataObject static public function getUrlFromNotice(Notice $notice, $anchor=true) { - $conv = self::getKV('id', $notice->conversation); + $conv = new Conversation(); + $conv->id = $notice->conversation; + $conv->find(true); + if (!$conv instanceof Conversation) { + common_debug('Conversation does not exist for notice ID: '.$notice->id); + throw new NoResultException($conv); + } return $conv->getUrl($anchor ? $notice->id : null); } From 6b717a6a6917bd024431f8d1e0835325e0194421 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Tue, 26 May 2015 13:14:26 +0200 Subject: [PATCH 4/4] Throw exception if Local_group has no corresponding User_group --- classes/Local_group.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/classes/Local_group.php b/classes/Local_group.php index c0dcf02e4b..9e95102d85 100644 --- a/classes/Local_group.php +++ b/classes/Local_group.php @@ -40,16 +40,19 @@ class Local_group extends Managed_DataObject public function getProfile() { - $group = $this->getGroup(); - if (!$group instanceof User_group) { - return null; // TODO: Throw exception when other code is ready - } - return $group->getProfile(); + return $this->getGroup()->getProfile(); } public function getGroup() { - return User_group::getKV('id', $this->group_id); + $group = new User_group(); + $group->id = $this->group_id; + $group->find(true); + if (!$group instanceof User_group) { + common_log(LOG_ERR, 'User_group does not exist for Local_group: '.$this->group_id); + throw new NoResultException($group); + } + return $group; } function setNickname($nickname)