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,8 +48,13 @@ abstract class PhabricatorDirectoryController extends PhabricatorController {
 | 
			
		||||
 | 
			
		||||
    $status = array();
 | 
			
		||||
    foreach ($applications as $key => $application) {
 | 
			
		||||
      if ($user->isLoggedIn()) {
 | 
			
		||||
        $status[get_class($application)] = $application->loadStatus($user);
 | 
			
		||||
      }
 | 
			
		||||
      else {
 | 
			
		||||
        $status[get_class($application)] = array();
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $tile_groups = array();
 | 
			
		||||
    $prefs = $user->loadPreferences()->getPreference(
 | 
			
		||||
 
 | 
			
		||||
@@ -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