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