@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Require a viewer for Remarkup rendering

Summary:
Provide a viewer to all remarkup engines.

This fixes commit summaries in Diffusion, which were failing to link because they didn't have a user and thus couldn't see/load `D123`, e.g.

Test Plan: Grepped for engine creation.

Reviewers: vrana

Reviewed By: vrana

CC: aran, edward

Maniphest Tasks: T603

Differential Revision: https://secure.phabricator.com/D5152

+19 -38
+1
src/applications/config/controller/PhabricatorConfigEditController.php
··· 130 130 } 131 131 132 132 $engine = new PhabricatorMarkupEngine(); 133 + $engine->setViewer($user); 133 134 $engine->addObject($option, 'description'); 134 135 $engine->process(); 135 136 $description = phutil_tag(
+1
src/applications/differential/__tests__/DifferentialParseRenderTestCase.php
··· 43 43 $changeset = head($diff->getChangesets()); 44 44 45 45 $engine = new PhabricatorMarkupEngine(); 46 + $engine->setViewer(new PhabricatorUser()); 46 47 47 48 $cparser = new DifferentialChangesetParser(); 48 49 $cparser->setDisableCache(true);
+1
src/applications/differential/field/specification/DifferentialBlameRevisionFieldSpecification.php
··· 49 49 return null; 50 50 } 51 51 $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); 52 + $engine->setConfig('viewer', $this->getUser()); 52 53 return $engine->markupText($this->value); 53 54 } 54 55
+1
src/applications/differential/field/specification/DifferentialUnitFieldSpecification.php
··· 116 116 $userdata = str_replace("\000", '', $userdata); 117 117 } 118 118 $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); 119 + $engine->setConfig('viewer', $this->getUser()); 119 120 $userdata = $engine->markupText($userdata); 120 121 $rows[] = array( 121 122 'style' => 'details',
-5
src/applications/differential/remarkup/DifferentialRemarkupRule.php
··· 12 12 13 13 protected function loadObjects(array $ids) { 14 14 $viewer = $this->getEngine()->getConfig('viewer'); 15 - 16 - if (!$viewer) { 17 - return array(); 18 - } 19 - 20 15 return id(new DifferentialRevisionQuery()) 21 16 ->setViewer($viewer) 22 17 ->withIDs($ids)
+1
src/applications/diffusion/controller/DiffusionBrowseController.php
··· 107 107 108 108 private function markupText($text) { 109 109 $engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine(); 110 + $engine->setConfig('viewer', $this->getRequest()->getUser()); 110 111 $text = $engine->markupText($text); 111 112 112 113 $text = phutil_tag(
+1
src/applications/diffusion/controller/DiffusionCommitController.php
··· 67 67 $content[] = $top_anchor; 68 68 } else { 69 69 $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); 70 + $engine->setConfig('viewer', $user); 70 71 71 72 require_celerity_resource('diffusion-commit-view-css'); 72 73 require_celerity_resource('phabricator-remarkup-css');
+1
src/applications/diffusion/query/browse/DiffusionBrowseQuery.php
··· 137 137 } else { 138 138 // Markup extensionless files as remarkup so we get links and such. 139 139 $engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine(); 140 + $engine->setConfig('viewer', $this->getViewer()); 140 141 $readme_content = $engine->markupText($readme_content); 141 142 142 143 $class = 'phabricator-remarkup';
-4
src/applications/diffusion/remarkup/DiffusionRemarkupRule.php
··· 23 23 $viewer = $this->getEngine()->getConfig('viewer'); 24 24 $min_qualified = PhabricatorRepository::MINIMUM_QUALIFIED_HASH; 25 25 26 - if (!$viewer) { 27 - return array(); 28 - } 29 - 30 26 $commits = id(new DiffusionCommitQuery()) 31 27 ->setViewer($viewer) 32 28 ->withIdentifiers($ids)
+1
src/applications/diviner/renderer/DivinerDefaultRenderer.php
··· 186 186 array( 187 187 'preserve-linebreaks' => false, 188 188 )); 189 + $engine->setConfig('viewer', new PhabricatorUser()); 189 190 $engine->setConfig('diviner.renderer', $this); 190 191 return $engine; 191 192 }
-4
src/applications/maniphest/remarkup/ManiphestRemarkupRule.php
··· 13 13 protected function loadObjects(array $ids) { 14 14 $viewer = $this->getEngine()->getConfig('viewer'); 15 15 16 - if (!$viewer) { 17 - return array(); 18 - } 19 - 20 16 return id(new ManiphestTaskQuery()) 21 17 ->setViewer($viewer) 22 18 ->withTaskIDs($ids)
-4
src/applications/paste/remarkup/PhabricatorPasteRemarkupRule.php
··· 13 13 protected function loadObjects(array $ids) { 14 14 $viewer = $this->getEngine()->getConfig('viewer'); 15 15 16 - if (!$viewer) { 17 - return array(); 18 - } 19 - 20 16 return id(new PhabricatorPasteQuery()) 21 17 ->setViewer($viewer) 22 18 ->withIDs($ids)
+3 -2
src/applications/people/controller/PhabricatorPeopleProfileController.php
··· 171 171 $profile->getBlurb(), 172 172 '//'.pht('Nothing is known about this rare specimen.').'//'); 173 173 174 + $viewer = $this->getRequest()->getUser(); 175 + 174 176 $engine = PhabricatorMarkupEngine::newProfileMarkupEngine(); 177 + $engine->setConfig('viewer', $viewer); 175 178 $blurb = $engine->markupText($blurb); 176 - 177 - $viewer = $this->getRequest()->getUser(); 178 179 179 180 $content = hsprintf( 180 181 '<div class="phabricator-profile-info-group">
-5
src/applications/pholio/remarkup/PholioRemarkupRule.php
··· 9 9 10 10 protected function loadObjects(array $ids) { 11 11 $viewer = $this->getEngine()->getConfig('viewer'); 12 - 13 - if (!$viewer) { 14 - return array(); 15 - } 16 - 17 12 return id(new PholioMockQuery()) 18 13 ->setViewer($viewer) 19 14 ->withIDs($ids)
-5
src/applications/ponder/remarkup/PonderRemarkupRule.php
··· 9 9 10 10 protected function loadObjects(array $ids) { 11 11 $viewer = $this->getEngine()->getConfig('viewer'); 12 - 13 - if (!$viewer) { 14 - return array(); 15 - } 16 - 17 12 return id(new PonderQuestionQuery()) 18 13 ->setViewer($viewer) 19 14 ->withIDs($ids)
+1
src/applications/slowvote/controller/PhabricatorSlowvotePollController.php
··· 200 200 $viewer = $this->getRequest()->getUser(); 201 201 202 202 $engine = PhabricatorMarkupEngine::newSlowvoteMarkupEngine(); 203 + $engine->setConfig('viewer', $viewer); 203 204 204 205 $comment_markup = array(); 205 206 foreach ($comments as $comment) {
+4 -1
src/applications/transactions/view/PhabricatorApplicationTransactionTextDiffDetailView.php
··· 33 33 34 34 $whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL; 35 35 36 + $markup_engine = new PhabricatorMarkupEngine(); 37 + $markup_engine->setViewer($this->getUser()); 38 + 36 39 $parser = new DifferentialChangesetParser(); 37 40 $parser->setChangeset($changeset); 38 - $parser->setMarkupEngine(new PhabricatorMarkupEngine()); 41 + $parser->setMarkupEngine($markup_engine); 39 42 $parser->setWhitespaceMode($whitespace_mode); 40 43 41 44 return $parser->render(0, PHP_INT_MAX, array());
+2
src/infrastructure/markup/PhabricatorMarkupEngine.php
··· 461 461 $mentions = array(); 462 462 463 463 $engine = self::newDifferentialMarkupEngine(); 464 + $engine->setConfig('viewer', PhabricatorUser::getOmnipotentUser()); 464 465 465 466 foreach ($content_blocks as $content_block) { 466 467 $engine->markupText($content_block); ··· 478 479 $files = array(); 479 480 480 481 $engine = self::newDifferentialMarkupEngine(); 482 + $engine->setConfig('viewer', PhabricatorUser::getOmnipotentUser()); 481 483 482 484 foreach ($content_blocks as $content_block) { 483 485 $engine->markupText($content_block);
+1 -8
src/infrastructure/markup/rule/PhabricatorRemarkupRuleObject.php
··· 24 24 $query = new PhabricatorObjectHandleData($phids); 25 25 26 26 $viewer = $this->getEngine()->getConfig('viewer'); 27 - if ($viewer) { 28 - $query->setViewer($viewer); 29 - } else { 30 - // TODO: This needs to be fixed; all markup engines need to set viewers -- 31 - // but there are a lot of them (T603). 32 - $query->setViewer(PhabricatorUser::getOmnipotentUser()); 33 - phlog("Warning: Loading handles without a viewing user."); 34 - } 27 + $query->setViewer($viewer); 35 28 $handles = $query->loadHandles(); 36 29 37 30 $result = array();