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));
$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;
}

View File

@@ -2,6 +2,14 @@
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) {
$page = $this->buildStandardPageView();
@@ -40,7 +48,12 @@ abstract class PhabricatorDirectoryController extends PhabricatorController {
$status = array();
foreach ($applications as $key => $application) {
$status[get_class($application)] = $application->loadStatus($user);
if ($user->isLoggedIn()) {
$status[get_class($application)] = $application->loadStatus($user);
}
else {
$status[get_class($application)] = array();
}
}
$tile_groups = array();

View File

@@ -60,6 +60,7 @@ final class PhabricatorDirectoryMainController
$jump_panel = $this->buildJumpPanel();
$revision_panel = $this->buildRevisionPanel();
$feed_panel = $this->buildFeedPanel();
$content = array(
$jump_panel,
@@ -71,6 +72,7 @@ final class PhabricatorDirectoryMainController
$audit_panel,
$commit_panel,
$this->minipanels,
$feed_panel,
);
$nav->appendChild($content);
@@ -115,6 +117,10 @@ final class PhabricatorDirectoryMainController
}
$user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$task_query = id(new ManiphestTaskQuery())
->setViewer($user)
@@ -205,6 +211,10 @@ final class PhabricatorDirectoryMainController
private function buildRevisionPanel() {
$user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$user_phid = $user->getPHID();
$revision_query = id(new DifferentialRevisionQuery())
@@ -283,6 +293,10 @@ final class PhabricatorDirectoryMainController
private function buildTasksPanel() {
$user = $this->getRequest()->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$user_phid = $user->getPHID();
$task_query = id(new ManiphestTaskQuery())
@@ -420,6 +434,9 @@ final class PhabricatorDirectoryMainController
public function buildAuditPanel() {
$request = $this->getRequest();
$user = $request->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
@@ -468,6 +485,9 @@ final class PhabricatorDirectoryMainController
public function buildCommitPanel() {
$request = $this->getRequest();
$user = $request->getUser();
if (!$user->isLoggedIn()) {
return null;
}
$phids = array($user->getPHID());
@@ -510,4 +530,28 @@ final class PhabricatorDirectoryMainController
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() {
return self::GROUP_COMMUNICATION;
return self::GROUP_CORE;
}
}

View File

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