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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ final class PhabricatorApplicationFeed extends PhabricatorApplication {
|
||||
}
|
||||
|
||||
public function getApplicationGroup() {
|
||||
return self::GROUP_COMMUNICATION;
|
||||
return self::GROUP_CORE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ final class PhabricatorApplicationProject extends PhabricatorApplication {
|
||||
}
|
||||
|
||||
public function getApplicationGroup() {
|
||||
return self::GROUP_ORGANIZATION;
|
||||
return self::GROUP_CORE;
|
||||
}
|
||||
|
||||
public function getRemarkupRules() {
|
||||
|
||||
Reference in New Issue
Block a user