jenkins-bot has submitted this change and it was merged. Change subject: Check for & report permissions error in single-view pages ......................................................................
Check for & report permissions error in single-view pages There was also an issue with Header.php not reporting errors for non-POST actions - we likely never ran into them because header is not too often affected by permissions: anyone can edit it, it has no parents (topic) whose state it has to inherit, ... It just has to inherit the board deleted state, which was only recently introduced. Bug: T104843 Change-Id: I9d6d4e4b7cc9af74e52f3aae80985fa92659da42 --- M handlebars/compiled/flow_block_header_single_view.handlebars.php M handlebars/compiled/flow_block_topic_single_view.handlebars.php M handlebars/compiled/flow_block_topicsummary_single_view.handlebars.php M handlebars/flow_block_header_single_view.handlebars M handlebars/flow_block_topic_single_view.handlebars M handlebars/flow_block_topicsummary_single_view.handlebars M includes/Block/Header.php M includes/Block/Topic.php 8 files changed, 140 insertions(+), 101 deletions(-) Approvals: Sbisson: Looks good to me, approved jenkins-bot: Verified diff --git a/handlebars/compiled/flow_block_header_single_view.handlebars.php b/handlebars/compiled/flow_block_header_single_view.handlebars.php index f092153..2501719 100644 --- a/handlebars/compiled/flow_block_header_single_view.handlebars.php +++ b/handlebars/compiled/flow_block_header_single_view.handlebars.php @@ -12,13 +12,21 @@ ), 'constants' => array(), 'helpers' => array( 'l10n' => 'Flow\TemplateHelper::l10n', + 'html' => 'Flow\TemplateHelper::htmlHelper', 'l10nParse' => 'Flow\TemplateHelper::l10nParse', 'escapeContent' => 'Flow\TemplateHelper::escapeContent', 'enablePatrollingLink' => 'Flow\TemplateHelper::enablePatrollingLink', ), 'blockhelpers' => array(), 'hbhelpers' => array(), - 'partials' => array('flow_patrol_action' => function ($cx, $in, $sp) {return ''.$sp.''.((LCRun3::ifvar($cx, ((isset($in['revision']['rev_view_links']['markPatrolled']) && is_array($in['revision']['rev_view_links'])) ? $in['revision']['rev_view_links']['markPatrolled'] : null))) ? '<div class="patrollink"> + 'partials' => array('flow_errors' => function ($cx, $in, $sp) {return ''.$sp.'<div class="flow-error-container"> +'.$sp.''.((LCRun3::ifvar($cx, ((isset($cx['sp_vars']['root']['errors']) && is_array($cx['sp_vars']['root'])) ? $cx['sp_vars']['root']['errors'] : null))) ? ' <div class="flow-errors errorbox"> +'.$sp.' <ul> +'.$sp.''.LCRun3::sec($cx, ((isset($cx['sp_vars']['root']['errors']) && is_array($cx['sp_vars']['root'])) ? $cx['sp_vars']['root']['errors'] : null), $in, true, function($cx, $in)use($sp){return ' <li>'.LCRun3::ch($cx, 'html', array(array(((isset($in['message']) && is_array($in)) ? $in['message'] : null)),array()), 'encq').'</li> +'.$sp.'';}).' </ul> +'.$sp.' </div> +'.$sp.'' : '').'</div> +';},'flow_patrol_action' => function ($cx, $in, $sp) {return ''.$sp.''.((LCRun3::ifvar($cx, ((isset($in['revision']['rev_view_links']['markPatrolled']) && is_array($in['revision']['rev_view_links'])) ? $in['revision']['rev_view_links']['markPatrolled'] : null))) ? '<div class="patrollink"> '.$sp.' [<a class="mw-ui-quiet" '.$sp.' href="'.htmlentities((string)((isset($in['revision']['rev_view_links']['markPatrolled']['url']) && is_array($in['revision']['rev_view_links']['markPatrolled'])) ? $in['revision']['rev_view_links']['markPatrolled']['url'] : null), ENT_QUOTES, 'UTF-8').'" '.$sp.' title="'.LCRun3::ch($cx, 'l10n', array(array('flow-mark-revision-patrolled-link-title'),array()), 'encq').'" @@ -32,16 +40,17 @@ ); return '<div class="flow-board"> - <div class="flow-revision-permalink-warning plainlinks"> -'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-header',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-header-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -').' </div> +'.LCRun3::p($cx, 'flow_errors', array(array($in),array()), ' ').' +'.((LCRun3::ifvar($cx, ((isset($in['revision']) && is_array($in)) ? $in['revision'] : null))) ? ' <div class="flow-revision-permalink-warning plainlinks"> +'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-header',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-header-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +').' </div> - <div class="flow-revision-content"> - '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' - </div> + <div class="flow-revision-content"> + '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' + </div> -'.LCRun3::p($cx, 'flow_patrol_action', array(array($in),array())).'</div> +'.LCRun3::p($cx, 'flow_patrol_action', array(array($in),array()), ' ').'' : '').'</div> '; } ?> \ No newline at end of file diff --git a/handlebars/compiled/flow_block_topic_single_view.handlebars.php b/handlebars/compiled/flow_block_topic_single_view.handlebars.php index 2d81aa6..1709732 100644 --- a/handlebars/compiled/flow_block_topic_single_view.handlebars.php +++ b/handlebars/compiled/flow_block_topic_single_view.handlebars.php @@ -12,13 +12,21 @@ ), 'constants' => array(), 'helpers' => array( 'l10n' => 'Flow\TemplateHelper::l10n', + 'html' => 'Flow\TemplateHelper::htmlHelper', 'l10nParse' => 'Flow\TemplateHelper::l10nParse', 'escapeContent' => 'Flow\TemplateHelper::escapeContent', 'enablePatrollingLink' => 'Flow\TemplateHelper::enablePatrollingLink', ), 'blockhelpers' => array(), 'hbhelpers' => array(), - 'partials' => array('flow_patrol_action' => function ($cx, $in, $sp) {return ''.$sp.''.((LCRun3::ifvar($cx, ((isset($in['revision']['rev_view_links']['markPatrolled']) && is_array($in['revision']['rev_view_links'])) ? $in['revision']['rev_view_links']['markPatrolled'] : null))) ? '<div class="patrollink"> + 'partials' => array('flow_errors' => function ($cx, $in, $sp) {return ''.$sp.'<div class="flow-error-container"> +'.$sp.''.((LCRun3::ifvar($cx, ((isset($cx['sp_vars']['root']['errors']) && is_array($cx['sp_vars']['root'])) ? $cx['sp_vars']['root']['errors'] : null))) ? ' <div class="flow-errors errorbox"> +'.$sp.' <ul> +'.$sp.''.LCRun3::sec($cx, ((isset($cx['sp_vars']['root']['errors']) && is_array($cx['sp_vars']['root'])) ? $cx['sp_vars']['root']['errors'] : null), $in, true, function($cx, $in)use($sp){return ' <li>'.LCRun3::ch($cx, 'html', array(array(((isset($in['message']) && is_array($in)) ? $in['message'] : null)),array()), 'encq').'</li> +'.$sp.'';}).' </ul> +'.$sp.' </div> +'.$sp.'' : '').'</div> +';},'flow_patrol_action' => function ($cx, $in, $sp) {return ''.$sp.''.((LCRun3::ifvar($cx, ((isset($in['revision']['rev_view_links']['markPatrolled']) && is_array($in['revision']['rev_view_links'])) ? $in['revision']['rev_view_links']['markPatrolled'] : null))) ? '<div class="patrollink"> '.$sp.' [<a class="mw-ui-quiet" '.$sp.' href="'.htmlentities((string)((isset($in['revision']['rev_view_links']['markPatrolled']['url']) && is_array($in['revision']['rev_view_links']['markPatrolled'])) ? $in['revision']['rev_view_links']['markPatrolled']['url'] : null), ENT_QUOTES, 'UTF-8').'" '.$sp.' title="'.LCRun3::ch($cx, 'l10n', array(array('flow-mark-revision-patrolled-link-title'),array()), 'encq').'" @@ -32,17 +40,16 @@ ); return '<div class="flow-board"> - <div class="flow-revision-permalink-warning plainlinks"> -'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-post',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-post-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -').' </div> - <div class="flow-revision-content"> - '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' - </div> +'.LCRun3::p($cx, 'flow_errors', array(array($in),array()), ' ').' +'.((LCRun3::ifvar($cx, ((isset($in['revision']) && is_array($in)) ? $in['revision'] : null))) ? ' <div class="flow-revision-permalink-warning plainlinks"> +'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-post',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-post-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +').' </div> + <div class="flow-revision-content"> + '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' + </div> -'.LCRun3::p($cx, 'flow_patrol_action', array(array($in),array()), ' ').'</div> - - +'.LCRun3::p($cx, 'flow_patrol_action', array(array($in),array()), ' ').'' : '').'</div> '; } ?> \ No newline at end of file diff --git a/handlebars/compiled/flow_block_topicsummary_single_view.handlebars.php b/handlebars/compiled/flow_block_topicsummary_single_view.handlebars.php index 87ac212..a075804 100644 --- a/handlebars/compiled/flow_block_topicsummary_single_view.handlebars.php +++ b/handlebars/compiled/flow_block_topicsummary_single_view.handlebars.php @@ -32,14 +32,15 @@ ); return '<div class="flow-board"> -'.LCRun3::p($cx, 'flow_errors', array(array($in),array()), ' ').' <div class="flow-revision-permalink-warning plainlinks"> -'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-postsummary',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-postsummary-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' -').' </div> - <div class="flow-revision-content"> - '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' - </div> -</div> +'.LCRun3::p($cx, 'flow_errors', array(array($in),array()), ' ').' +'.((LCRun3::ifvar($cx, ((isset($in['revision']) && is_array($in)) ? $in['revision'] : null))) ? ' <div class="flow-revision-permalink-warning plainlinks"> +'.((LCRun3::ifvar($cx, ((isset($in['revision']['previousRevisionId']) && is_array($in['revision'])) ? $in['revision']['previousRevisionId'] : null))) ? ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-postsummary',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +' : ' '.LCRun3::ch($cx, 'l10nParse', array(array('flow-revision-permalink-warning-postsummary-first',((isset($in['revision']['human_timestamp']) && is_array($in['revision'])) ? $in['revision']['human_timestamp'] : null),((isset($in['revision']['rev_view_links']['board']['title']) && is_array($in['revision']['rev_view_links']['board'])) ? $in['revision']['rev_view_links']['board']['title'] : null),((isset($in['revision']['root']['content']) && is_array($in['revision']['root'])) ? $in['revision']['root']['content'] : null),((isset($in['revision']['rev_view_links']['hist']['url']) && is_array($in['revision']['rev_view_links']['hist'])) ? $in['revision']['rev_view_links']['hist']['url'] : null),((isset($in['revision']['rev_view_links']['diff']['url']) && is_array($in['revision']['rev_view_links']['diff'])) ? $in['revision']['rev_view_links']['diff']['url'] : null)),array()), 'encq').' +').' </div> + <div class="flow-revision-content"> + '.LCRun3::ch($cx, 'escapeContent', array(array(((isset($in['revision']['content']['format']) && is_array($in['revision']['content'])) ? $in['revision']['content']['format'] : null),((isset($in['revision']['content']['content']) && is_array($in['revision']['content'])) ? $in['revision']['content']['content'] : null)),array()), 'encq').' + </div> +' : '').'</div> '; } ?> \ No newline at end of file diff --git a/handlebars/flow_block_header_single_view.handlebars b/handlebars/flow_block_header_single_view.handlebars index a4c4a1b..eb66cab 100644 --- a/handlebars/flow_block_header_single_view.handlebars +++ b/handlebars/flow_block_header_single_view.handlebars @@ -1,21 +1,25 @@ <div class="flow-board"> - <div class="flow-revision-permalink-warning plainlinks"> - {{#if revision.previousRevisionId}} - {{l10nParse "flow-revision-permalink-warning-header" - revision.human_timestamp - revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{else}} - {{l10nParse "flow-revision-permalink-warning-header-first" - revision.human_timestamp - revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{/if}} - </div> + {{> flow_errors}} - <div class="flow-revision-content"> - {{escapeContent revision.content.format revision.content.content}} - </div> + {{#if revision}} + <div class="flow-revision-permalink-warning plainlinks"> + {{#if revision.previousRevisionId}} + {{l10nParse "flow-revision-permalink-warning-header" + revision.human_timestamp + revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{else}} + {{l10nParse "flow-revision-permalink-warning-header-first" + revision.human_timestamp + revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{/if}} + </div> -{{> flow_patrol_action}} + <div class="flow-revision-content"> + {{escapeContent revision.content.format revision.content.content}} + </div> + + {{> flow_patrol_action}} + {{/if}} </div> diff --git a/handlebars/flow_block_topic_single_view.handlebars b/handlebars/flow_block_topic_single_view.handlebars index a55b8c9..d4afdaf 100644 --- a/handlebars/flow_block_topic_single_view.handlebars +++ b/handlebars/flow_block_topic_single_view.handlebars @@ -1,26 +1,28 @@ <div class="flow-board"> - <div class="flow-revision-permalink-warning plainlinks"> - {{#if revision.previousRevisionId}} - {{l10nParse "flow-revision-permalink-warning-post" - revision.human_timestamp - revision.rev_view_links.board.title - revision.root.content revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{else}} - {{l10nParse - "flow-revision-permalink-warning-post-first" - revision.human_timestamp - revision.rev_view_links.board.title - revision.root.content - revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{/if}} - </div> - <div class="flow-revision-content"> - {{escapeContent revision.content.format revision.content.content}} - </div> + {{> flow_errors}} - {{> flow_patrol_action}} + {{#if revision}} + <div class="flow-revision-permalink-warning plainlinks"> + {{#if revision.previousRevisionId}} + {{l10nParse "flow-revision-permalink-warning-post" + revision.human_timestamp + revision.rev_view_links.board.title + revision.root.content revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{else}} + {{l10nParse + "flow-revision-permalink-warning-post-first" + revision.human_timestamp + revision.rev_view_links.board.title + revision.root.content + revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{/if}} + </div> + <div class="flow-revision-content"> + {{escapeContent revision.content.format revision.content.content}} + </div> + + {{> flow_patrol_action}} + {{/if}} </div> - - diff --git a/handlebars/flow_block_topicsummary_single_view.handlebars b/handlebars/flow_block_topicsummary_single_view.handlebars index c6b8f05..e8afa85 100644 --- a/handlebars/flow_block_topicsummary_single_view.handlebars +++ b/handlebars/flow_block_topicsummary_single_view.handlebars @@ -1,23 +1,26 @@ <div class="flow-board"> {{> flow_errors }} - <div class="flow-revision-permalink-warning plainlinks"> - {{#if revision.previousRevisionId}} - {{l10nParse "flow-revision-permalink-warning-postsummary" - revision.human_timestamp - revision.rev_view_links.board.title - revision.root.content - revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{else}} - {{l10nParse "flow-revision-permalink-warning-postsummary-first" - revision.human_timestamp - revision.rev_view_links.board.title - revision.root.content - revision.rev_view_links.hist.url - revision.rev_view_links.diff.url}} - {{/if}} - </div> - <div class="flow-revision-content"> - {{escapeContent revision.content.format revision.content.content}} - </div> + + {{#if revision}} + <div class="flow-revision-permalink-warning plainlinks"> + {{#if revision.previousRevisionId}} + {{l10nParse "flow-revision-permalink-warning-postsummary" + revision.human_timestamp + revision.rev_view_links.board.title + revision.root.content + revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{else}} + {{l10nParse "flow-revision-permalink-warning-postsummary-first" + revision.human_timestamp + revision.rev_view_links.board.title + revision.root.content + revision.rev_view_links.hist.url + revision.rev_view_links.diff.url}} + {{/if}} + </div> + <div class="flow-revision-content"> + {{escapeContent revision.content.format revision.content.content}} + </div> + {{/if}} </div> diff --git a/includes/Block/Header.php b/includes/Block/Header.php index 3087387..ab16a0a 100644 --- a/includes/Block/Header.php +++ b/includes/Block/Header.php @@ -218,21 +218,10 @@ case 'compare-header-revisions': $output += $this->renderDiffviewApi( $options ); break; - } - if ( $this->wasSubmitted() ) { - $output += array( - 'submitted' => $this->submitted, - 'errors' => $this->errors, - ); - } else { - $output += array( - 'submitted' => array(), - 'errors' => array() - ); - } - + $output['submitted'] = $this->wasSubmitted() ? $this->submitted : array(); + $output['errors'] = $this->errors; return $output; } @@ -264,6 +253,11 @@ /** @var RevisionViewFormatter $formatter */ $formatter = Container::get( 'formatter.revisionview' ); + if ( !$this->permissions->isAllowed( $row->revision, 'view' ) ) { + $this->addError( 'permissions', $this->context->msg( 'flow-error-not-allowed' ) ); + return array(); + } + return array( 'revision' => $formatter->formatApi( $row, $this->context ) ); @@ -276,6 +270,14 @@ protected function renderRevisionApi( $format ) { $output = array(); if ( $this->header === null ) { + if ( + !$this->permissions->isRevisionAllowed( null, 'view' ) || + !$this->permissions->isBoardAllowed( $this->workflow, 'view' ) + ) { + $this->addError( 'permissions', $this->context->msg( 'flow-error-not-allowed' ) ); + return array(); + } + /** @var UrlGenerator $urlGenerator */ $urlGenerator = Container::get( 'url_generator' ); $output['revision'] = array( @@ -293,11 +295,17 @@ $row->revision = $this->header; $row->currentRevision = $this->header; + if ( !$this->permissions->isAllowed( $row->revision, 'view' ) ) { + $this->addError( 'permissions', $this->context->msg( 'flow-error-not-allowed' ) ); + return array(); + } + $serializer = Container::get( 'formatter.revision' ); $serializer->setContentFormat( $format ); $output['revision'] = $serializer->formatApi( $row, $this->context ); } + return $output; } diff --git a/includes/Block/Topic.php b/includes/Block/Topic.php index 1b02d8c..944dc02 100644 --- a/includes/Block/Topic.php +++ b/includes/Block/Topic.php @@ -576,6 +576,11 @@ protected function renderSingleViewApi( $revId ) { $row = Container::get( 'query.post.view' )->getSingleViewResult( $revId ); + if ( !$this->permissions->isAllowed( $row->revision, 'view' ) ) { + $this->addError( 'permissions', $this->getDisallowedErrorMessage( $row->revision ) ); + return array(); + } + return array( 'revision' => Container::get( 'formatter.revisionview' )->formatApi( $row, $this->context ) ); -- To view, visit https://gerrit.wikimedia.org/r/224057 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9d6d4e4b7cc9af74e52f3aae80985fa92659da42 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Flow Gerrit-Branch: master Gerrit-Owner: Matthias Mullie <mmul...@wikimedia.org> Gerrit-Reviewer: Sbisson <sbis...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits