1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-01 09:28:22 +01:00

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
This commit is contained in:
epriestley 2013-03-04 12:33:05 -08:00
parent 1beda30792
commit 8ae718c2aa
19 changed files with 20 additions and 39 deletions

View file

@ -130,6 +130,7 @@ final class PhabricatorConfigEditController
} }
$engine = new PhabricatorMarkupEngine(); $engine = new PhabricatorMarkupEngine();
$engine->setViewer($user);
$engine->addObject($option, 'description'); $engine->addObject($option, 'description');
$engine->process(); $engine->process();
$description = phutil_tag( $description = phutil_tag(

View file

@ -43,6 +43,7 @@ final class DifferentialParseRenderTestCase extends PhabricatorTestCase {
$changeset = head($diff->getChangesets()); $changeset = head($diff->getChangesets());
$engine = new PhabricatorMarkupEngine(); $engine = new PhabricatorMarkupEngine();
$engine->setViewer(new PhabricatorUser());
$cparser = new DifferentialChangesetParser(); $cparser = new DifferentialChangesetParser();
$cparser->setDisableCache(true); $cparser->setDisableCache(true);

View file

@ -49,6 +49,7 @@ final class DifferentialBlameRevisionFieldSpecification
return null; return null;
} }
$engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
$engine->setConfig('viewer', $this->getUser());
return $engine->markupText($this->value); return $engine->markupText($this->value);
} }

View file

@ -116,6 +116,7 @@ final class DifferentialUnitFieldSpecification
$userdata = str_replace("\000", '', $userdata); $userdata = str_replace("\000", '', $userdata);
} }
$engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
$engine->setConfig('viewer', $this->getUser());
$userdata = $engine->markupText($userdata); $userdata = $engine->markupText($userdata);
$rows[] = array( $rows[] = array(
'style' => 'details', 'style' => 'details',

View file

@ -12,11 +12,6 @@ final class DifferentialRemarkupRule
protected function loadObjects(array $ids) { protected function loadObjects(array $ids) {
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if (!$viewer) {
return array();
}
return id(new DifferentialRevisionQuery()) return id(new DifferentialRevisionQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs($ids) ->withIDs($ids)

View file

@ -107,6 +107,7 @@ final class DiffusionBrowseController extends DiffusionController {
private function markupText($text) { private function markupText($text) {
$engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine(); $engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine();
$engine->setConfig('viewer', $this->getRequest()->getUser());
$text = $engine->markupText($text); $text = $engine->markupText($text);
$text = phutil_tag( $text = phutil_tag(

View file

@ -67,6 +67,7 @@ final class DiffusionCommitController extends DiffusionController {
$content[] = $top_anchor; $content[] = $top_anchor;
} else { } else {
$engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine(); $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
$engine->setConfig('viewer', $user);
require_celerity_resource('diffusion-commit-view-css'); require_celerity_resource('diffusion-commit-view-css');
require_celerity_resource('phabricator-remarkup-css'); require_celerity_resource('phabricator-remarkup-css');

View file

@ -137,6 +137,7 @@ abstract class DiffusionBrowseQuery {
} else { } else {
// Markup extensionless files as remarkup so we get links and such. // Markup extensionless files as remarkup so we get links and such.
$engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine(); $engine = PhabricatorMarkupEngine::newDiffusionMarkupEngine();
$engine->setConfig('viewer', $this->getViewer());
$readme_content = $engine->markupText($readme_content); $readme_content = $engine->markupText($readme_content);
$class = 'phabricator-remarkup'; $class = 'phabricator-remarkup';

View file

@ -23,10 +23,6 @@ final class DiffusionRemarkupRule
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
$min_qualified = PhabricatorRepository::MINIMUM_QUALIFIED_HASH; $min_qualified = PhabricatorRepository::MINIMUM_QUALIFIED_HASH;
if (!$viewer) {
return array();
}
$commits = id(new DiffusionCommitQuery()) $commits = id(new DiffusionCommitQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIdentifiers($ids) ->withIdentifiers($ids)

View file

@ -186,6 +186,7 @@ final class DivinerDefaultRenderer extends DivinerRenderer {
array( array(
'preserve-linebreaks' => false, 'preserve-linebreaks' => false,
)); ));
$engine->setConfig('viewer', new PhabricatorUser());
$engine->setConfig('diviner.renderer', $this); $engine->setConfig('diviner.renderer', $this);
return $engine; return $engine;
} }

View file

@ -13,10 +13,6 @@ final class ManiphestRemarkupRule
protected function loadObjects(array $ids) { protected function loadObjects(array $ids) {
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if (!$viewer) {
return array();
}
return id(new ManiphestTaskQuery()) return id(new ManiphestTaskQuery())
->setViewer($viewer) ->setViewer($viewer)
->withTaskIDs($ids) ->withTaskIDs($ids)

View file

@ -13,10 +13,6 @@ final class PhabricatorPasteRemarkupRule
protected function loadObjects(array $ids) { protected function loadObjects(array $ids) {
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if (!$viewer) {
return array();
}
return id(new PhabricatorPasteQuery()) return id(new PhabricatorPasteQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs($ids) ->withIDs($ids)

View file

@ -171,11 +171,12 @@ final class PhabricatorPeopleProfileController
$profile->getBlurb(), $profile->getBlurb(),
'//'.pht('Nothing is known about this rare specimen.').'//'); '//'.pht('Nothing is known about this rare specimen.').'//');
$engine = PhabricatorMarkupEngine::newProfileMarkupEngine();
$blurb = $engine->markupText($blurb);
$viewer = $this->getRequest()->getUser(); $viewer = $this->getRequest()->getUser();
$engine = PhabricatorMarkupEngine::newProfileMarkupEngine();
$engine->setConfig('viewer', $viewer);
$blurb = $engine->markupText($blurb);
$content = hsprintf( $content = hsprintf(
'<div class="phabricator-profile-info-group"> '<div class="phabricator-profile-info-group">
<h1 class="phabricator-profile-info-header">Basic Information</h1> <h1 class="phabricator-profile-info-header">Basic Information</h1>

View file

@ -9,11 +9,6 @@ final class PholioRemarkupRule
protected function loadObjects(array $ids) { protected function loadObjects(array $ids) {
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if (!$viewer) {
return array();
}
return id(new PholioMockQuery()) return id(new PholioMockQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs($ids) ->withIDs($ids)

View file

@ -9,11 +9,6 @@ final class PonderRemarkupRule
protected function loadObjects(array $ids) { protected function loadObjects(array $ids) {
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if (!$viewer) {
return array();
}
return id(new PonderQuestionQuery()) return id(new PonderQuestionQuery())
->setViewer($viewer) ->setViewer($viewer)
->withIDs($ids) ->withIDs($ids)

View file

@ -200,6 +200,7 @@ final class PhabricatorSlowvotePollController
$viewer = $this->getRequest()->getUser(); $viewer = $this->getRequest()->getUser();
$engine = PhabricatorMarkupEngine::newSlowvoteMarkupEngine(); $engine = PhabricatorMarkupEngine::newSlowvoteMarkupEngine();
$engine->setConfig('viewer', $viewer);
$comment_markup = array(); $comment_markup = array();
foreach ($comments as $comment) { foreach ($comments as $comment) {

View file

@ -33,9 +33,12 @@ final class PhabricatorApplicationTransactionTextDiffDetailView
$whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL; $whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL;
$markup_engine = new PhabricatorMarkupEngine();
$markup_engine->setViewer($this->getUser());
$parser = new DifferentialChangesetParser(); $parser = new DifferentialChangesetParser();
$parser->setChangeset($changeset); $parser->setChangeset($changeset);
$parser->setMarkupEngine(new PhabricatorMarkupEngine()); $parser->setMarkupEngine($markup_engine);
$parser->setWhitespaceMode($whitespace_mode); $parser->setWhitespaceMode($whitespace_mode);
return $parser->render(0, PHP_INT_MAX, array()); return $parser->render(0, PHP_INT_MAX, array());

View file

@ -461,6 +461,7 @@ final class PhabricatorMarkupEngine {
$mentions = array(); $mentions = array();
$engine = self::newDifferentialMarkupEngine(); $engine = self::newDifferentialMarkupEngine();
$engine->setConfig('viewer', PhabricatorUser::getOmnipotentUser());
foreach ($content_blocks as $content_block) { foreach ($content_blocks as $content_block) {
$engine->markupText($content_block); $engine->markupText($content_block);
@ -478,6 +479,7 @@ final class PhabricatorMarkupEngine {
$files = array(); $files = array();
$engine = self::newDifferentialMarkupEngine(); $engine = self::newDifferentialMarkupEngine();
$engine->setConfig('viewer', PhabricatorUser::getOmnipotentUser());
foreach ($content_blocks as $content_block) { foreach ($content_blocks as $content_block) {
$engine->markupText($content_block); $engine->markupText($content_block);

View file

@ -24,14 +24,7 @@ abstract class PhabricatorRemarkupRuleObject
$query = new PhabricatorObjectHandleData($phids); $query = new PhabricatorObjectHandleData($phids);
$viewer = $this->getEngine()->getConfig('viewer'); $viewer = $this->getEngine()->getConfig('viewer');
if ($viewer) { $query->setViewer($viewer);
$query->setViewer($viewer);
} else {
// TODO: This needs to be fixed; all markup engines need to set viewers --
// but there are a lot of them (T603).
$query->setViewer(PhabricatorUser::getOmnipotentUser());
phlog("Warning: Loading handles without a viewing user.");
}
$handles = $query->loadHandles(); $handles = $query->loadHandles();
$result = array(); $result = array();