Matthias Mullie has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/219476

Change subject: Output error message instead of failing for more than just html
......................................................................

Output error message instead of failing for more than just html

Just like for html output, other formats (like plaintext for title)
should show a "failed to load content" content instead of failing
completely.

Meanwhile also moved the other (valid) exception up top: for
practical reasons so I can have an overarching try/catch for content
failures, but also because bad data request should fail before even
checking those permissions.

Bug: T98547
Change-Id: I2609626e18c80d379cb839ccaed2a4b10924bfd6
---
M includes/Templating.php
1 file changed, 18 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow 
refs/changes/76/219476/1

diff --git a/includes/Templating.php b/includes/Templating.php
index 8f56593..3d9cd77 100644
--- a/includes/Templating.php
+++ b/includes/Templating.php
@@ -122,6 +122,10 @@
         * @throws InvalidInputException
         */
        public function getContent( AbstractRevision $revision, $format = 
'fixed-html' ) {
+               if ( !in_array( $format, array( 'fixed-html', 'html', 
'plaintext', 'wikitext' ) ) ) {
+                       throw new InvalidInputException( 'Invalid format: ' . 
$format );
+               }
+
                $allowed = $this->permissions->isAllowed( $revision, 'view' );
                // Posts require view access to the topic title as well
                if ( $allowed && $revision instanceof PostRevision && 
!$revision->isTopicTitle() ) {
@@ -136,26 +140,23 @@
                        return '';
                }
 
-               // fixed html format
-               if ( $format === 'fixed-html' ) {
-                       // Parsoid doesn't render redlinks & doesn't strip bad 
images
-                       try {
+               try {
+                       if ( $format === 'fixed-html' ) {
+                               // Parsoid doesn't render redlinks & doesn't 
strip bad images
                                $content = $this->contentFixer->getContent( 
$revision );
-                       } catch ( \Exception $e ) {
-                               wfDebugLog( 'Flow', __METHOD__ . ': Failed fix 
content for rev_id = ' . $revision->getRevisionId()->getAlphadecimal() );
-                               \MWExceptionHandler::logException( $e );
-
-                               $content = wfMessage( 'flow-stub-post-content' 
)->parse();
+                       } else {
+                               // plaintext = wikitext
+                               $format = $format === 'plaintext' ? 'wikitext' 
: $format;
+                               $content = $revision->getContent( $format );
                        }
-               // all other formats
-               } elseif ( in_array( $format, array( 'html', 'plaintext', 
'wikitext' ) ) ) {
-                       if ( $format === 'plaintext' ) {
-                               $format = 'wikitext';
-                       }
+               } catch ( \Exception $e ) {
+                       wfDebugLog( 'Flow', __METHOD__ . ': Failed to get 
content for rev_id = ' . $revision->getRevisionId()->getAlphadecimal() );
+                       \MWExceptionHandler::logException( $e );
 
-                       $content = $revision->getContent( $format );
-               } else {
-                       throw new InvalidInputException( 'Invalid format: ' . 
$format );
+                       $content = wfMessage( 'flow-stub-post-content' 
)->parse();
+                       if ( !in_array( $format, array( 'html', 'fixed-html' ) 
) ) {
+                               $content = strip_tags( $content );
+                       }
                }
 
                return $content;

-- 
To view, visit https://gerrit.wikimedia.org/r/219476
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2609626e18c80d379cb839ccaed2a4b10924bfd6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <mmul...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to