From dbdd70270230885d2a5a89417be60efcca6b107c Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 11 Dec 2015 17:27:48 -0800 Subject: [PATCH] 404 older-style Phame URIs properly Summary: Ref T9968. Some of the crumb/route handling wasn't quite tight enough and could hit a fatal. Test Plan: Hit previously-fataling URI, got a 404 instead. Reviewers: chad Reviewed By: chad Subscribers: starruler Maniphest Tasks: T9968 Differential Revision: https://secure.phabricator.com/D14747 --- .../PhabricatorPhameApplication.php | 6 ++--- .../phame/controller/PhameLiveController.php | 22 ++++++++++--------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/applications/phame/application/PhabricatorPhameApplication.php b/src/applications/phame/application/PhabricatorPhameApplication.php index 40bf8e0a24..1a49c95277 100644 --- a/src/applications/phame/application/PhabricatorPhameApplication.php +++ b/src/applications/phame/application/PhabricatorPhameApplication.php @@ -42,7 +42,7 @@ final class PhabricatorPhameApplication extends PhabricatorApplication { // NOTE: The live routes include an initial "/", so leave it off // this route. - '(?Plive)/(?P[^/]+)' => $this->getLiveRoutes(), + '(?Plive)/(?P\d+)' => $this->getLiveRoutes(), 'post/' => array( '(?:query/(?P[^/]+)/)?' => 'PhamePostListController', 'blogger/(?P[\w\.-_]+)/' => 'PhamePostListController', @@ -61,7 +61,7 @@ final class PhabricatorPhameApplication extends PhabricatorApplication { '(?:query/(?P[^/]+)/)?' => 'PhameBlogListController', 'archive/(?P[^/]+)/' => 'PhameBlogArchiveController', 'edit/(?P[^/]+)/' => 'PhameBlogEditController', - 'view/(?P[^/]+)/' => 'PhameBlogViewController', + 'view/(?P\d+)/' => 'PhameBlogViewController', 'manage/(?P[^/]+)/' => 'PhameBlogManageController', 'feed/(?P[^/]+)/' => 'PhameBlogFeedController', 'new/' => 'PhameBlogEditController', @@ -92,7 +92,7 @@ final class PhabricatorPhameApplication extends PhabricatorApplication { return array( '/' => array( '' => 'PhameBlogViewController', - 'post/(?P[^/]+)/(?:(?P[^/]+)/)?' => 'PhamePostViewController', + 'post/(?P\d+)/(?:(?P[^/]+)/)?' => 'PhamePostViewController', ), ); } diff --git a/src/applications/phame/controller/PhameLiveController.php b/src/applications/phame/controller/PhameLiveController.php index 5b958d7977..da7fb6da4b 100644 --- a/src/applications/phame/controller/PhameLiveController.php +++ b/src/applications/phame/controller/PhameLiveController.php @@ -163,21 +163,23 @@ abstract class PhameLiveController extends PhameController { $crumbs->setBorder(true); - if ($post) { - if ($is_live) { - if ($is_external) { - $blog_uri = $blog->getExternalLiveURI(); + if ($blog) { + if ($post) { + if ($is_live) { + if ($is_external) { + $blog_uri = $blog->getExternalLiveURI(); + } else { + $blog_uri = $blog->getInternalLiveURI(); + } } else { - $blog_uri = $blog->getInternalLiveURI(); + $blog_uri = $blog->getViewURI(); } } else { - $blog_uri = $blog->getViewURI(); + $blog_uri = null; } - } else { - $blog_uri = null; - } - $crumbs->addTextCrumb($blog->getName(), $blog_uri); + $crumbs->addTextCrumb($blog->getName(), $blog_uri); + } if ($post) { $crumbs->addTextCrumb($post->getTitle());