Allow public access to main page, with login button in the top right, and show

activity feed on the main page.
This commit is contained in:
2013-11-03 23:12:29 +01:00
committed by Sergey Sharybin
parent 9799ceff80
commit a7f641eee2
5 changed files with 69 additions and 3 deletions

View File

@@ -42,6 +42,15 @@ final class PhabricatorApplicationAuth extends PhabricatorApplication {
->setSelected(($controller instanceof PhabricatorLogoutController)); ->setSelected(($controller instanceof PhabricatorLogoutController));
$items[] = $item; $items[] = $item;
} }
else {
$item = id(new PHUIListItemView())
->addClass('core-menu-item')
->setName(pht('Log In or Register'))
->setRenderNameAsTooltip(false)
->setIcon('authentication')
->setHref('/login/');
$items[] = $item;
}
return $items; return $items;
} }

View File

@@ -2,6 +2,14 @@
abstract class PhabricatorDirectoryController extends PhabricatorController { abstract class PhabricatorDirectoryController extends PhabricatorController {
public function shouldRequireLogin() {
if (PhabricatorEnv::getEnvConfig('policy.allow-public')) {
return false;
}
return parent::shouldRequireLogin();
}
public function buildStandardPageResponse($view, array $data) { public function buildStandardPageResponse($view, array $data) {
$page = $this->buildStandardPageView(); $page = $this->buildStandardPageView();
@@ -40,8 +48,13 @@ abstract class PhabricatorDirectoryController extends PhabricatorController {
$status = array(); $status = array();
foreach ($applications as $key => $application) { foreach ($applications as $key => $application) {
if ($user->isLoggedIn()) {
$status[get_class($application)] = $application->loadStatus($user); $status[get_class($application)] = $application->loadStatus($user);
} }
else {
$status[get_class($application)] = array();
}
}
$tile_groups = array(); $tile_groups = array();
$prefs = $user->loadPreferences()->getPreference( $prefs = $user->loadPreferences()->getPreference(

View File

@@ -60,6 +60,7 @@ final class PhabricatorDirectoryMainController
$jump_panel = $this->buildJumpPanel(); $jump_panel = $this->buildJumpPanel();
$revision_panel = $this->buildRevisionPanel(); $revision_panel = $this->buildRevisionPanel();
$feed_panel = $this->buildFeedPanel();
$content = array( $content = array(
$jump_panel, $jump_panel,
@@ -71,6 +72,7 @@ final class PhabricatorDirectoryMainController
$audit_panel, $audit_panel,
$commit_panel, $commit_panel,
$this->minipanels, $this->minipanels,
$feed_panel,
); );
$nav->appendChild($content); $nav->appendChild($content);
@@ -115,6 +117,10 @@ final class PhabricatorDirectoryMainController
} }
$user = $this->getRequest()->getUser(); $user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$task_query = id(new ManiphestTaskQuery()) $task_query = id(new ManiphestTaskQuery())
->setViewer($user) ->setViewer($user)
@@ -205,6 +211,10 @@ final class PhabricatorDirectoryMainController
private function buildRevisionPanel() { private function buildRevisionPanel() {
$user = $this->getRequest()->getUser(); $user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$user_phid = $user->getPHID(); $user_phid = $user->getPHID();
$revision_query = id(new DifferentialRevisionQuery()) $revision_query = id(new DifferentialRevisionQuery())
@@ -283,6 +293,10 @@ final class PhabricatorDirectoryMainController
private function buildTasksPanel() { private function buildTasksPanel() {
$user = $this->getRequest()->getUser(); $user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$user_phid = $user->getPHID(); $user_phid = $user->getPHID();
$task_query = id(new ManiphestTaskQuery()) $task_query = id(new ManiphestTaskQuery())
@@ -420,6 +434,9 @@ final class PhabricatorDirectoryMainController
public function buildAuditPanel() { public function buildAuditPanel() {
$request = $this->getRequest(); $request = $this->getRequest();
$user = $request->getUser(); $user = $request->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user); $phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
@@ -468,6 +485,9 @@ final class PhabricatorDirectoryMainController
public function buildCommitPanel() { public function buildCommitPanel() {
$request = $this->getRequest(); $request = $this->getRequest();
$user = $request->getUser(); $user = $request->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$phids = array($user->getPHID()); $phids = array($user->getPHID());
@@ -510,4 +530,28 @@ final class PhabricatorDirectoryMainController
return $panel; return $panel;
} }
public function buildFeedPanel() {
$request = $this->getRequest();
$user = $request->getUser();
$viewer = PhabricatorUser::getOmnipotentUser();
$query = new PhabricatorFeedQuery();
$query->setViewer($viewer);
$query->setLimit(25);
$stories = $query->execute();
$builder = new PhabricatorFeedBuilder($stories);
$builder
->setFramed(true)
->setUser($viewer);
$panel = new AphrontPanelView();
$panel->setHeader('Activity Feed');
$panel->setNoBackground();
$panel->appendChild($builder->buildView());
return $panel;
}
} }

View File

@@ -29,7 +29,7 @@ final class PhabricatorApplicationFeed extends PhabricatorApplication {
} }
public function getApplicationGroup() { public function getApplicationGroup() {
return self::GROUP_COMMUNICATION; return self::GROUP_CORE;
} }
} }

View File

@@ -23,7 +23,7 @@ final class PhabricatorApplicationProject extends PhabricatorApplication {
} }
public function getApplicationGroup() { public function getApplicationGroup() {
return self::GROUP_ORGANIZATION; return self::GROUP_CORE;
} }
public function getRemarkupRules() { public function getRemarkupRules() {