jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/329815 )

Change subject: Introduce stricter validation involving Newsletters' content 
models
......................................................................


Introduce stricter validation involving Newsletters' content models

This prevents the content model of a page and whether it is in the
newsletter namespace from becoming inconsistent, which caused bizzare
behavior when editing such a page and lead to "Could not find newsletter
with name ... " stack traces.
* fixed indentation for NewsletterHooks::onTitleMove

Bug: T154379
Bug: T154380
Change-Id: I38c991dac78f54867023571da4ba00d6cc2d64f7
---
M Newsletter.hooks.php
M extension.json
2 files changed, 34 insertions(+), 15 deletions(-)

Approvals:
  01tonythomas: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Newsletter.hooks.php b/Newsletter.hooks.php
index 742963f..71db636 100755
--- a/Newsletter.hooks.php
+++ b/Newsletter.hooks.php
@@ -271,21 +271,37 @@
                return true;
        }
 
-               /**
-                * @param Title $title
-                * @param Title $newtitle
-                * @param User $user
-                * @return bool
-                */
-               public static function onTitleMove( Title $title, Title 
$newtitle, User $user ) {
-                       if ( $newtitle->inNamespace( NS_NEWSLETTER ) ) {
-                               $newsletter = Newsletter::newFromName( 
$title->getText() );
-                               if ( $newsletter ) {
-                                       
NewsletterStore::getDefaultInstance()->updateName( $newsletter->getId(), 
$newtitle->getText() );
-                               } else {
-                                       throw new MWException( 'Cannot find 
newsletter with name \"' . $title->getText() . '\"' );
-                               }
+       /**
+        * @param Title $title
+        * @param Title $newtitle
+        * @param User $user
+        * @return bool
+        * @throws MWException
+        */
+       public static function onTitleMove( Title $title, Title $newtitle, User 
$user ) {
+               if ( $newtitle->inNamespace( NS_NEWSLETTER ) ) {
+                       $newsletter = Newsletter::newFromName( 
$title->getText() );
+                       if ( $newsletter ) {
+                               
NewsletterStore::getDefaultInstance()->updateName( $newsletter->getId(), 
$newtitle->getText() );
+                       } else {
+                               throw new MWException( 'Cannot find newsletter 
with name \"' . $title->getText() . '\"' );
                        }
-                       return true;
                }
+               return true;
+       }
+
+       /**
+        * @param string $contentModel ID of the content model in question
+        * @param Title $title the Title in question.
+        * @param $ok Output parameter, whether it is OK to use $contentModel 
on $title.
+        * @return bool
+        */
+       public static function onContentModelCanBeUsedOn( $contentModel, Title 
$title, &$ok ){
+               if ( $title->inNamespace( NS_NEWSLETTER ) && $contentModel != 
'NewsletterContent' ) {
+                       $ok = false;
+               } elseif ( !$title->inNamespace( NS_NEWSLETTER ) && 
$contentModel == 'NewsletterContent' ) {
+                       $ok = false;
+               }
+               return true;
+       }
 }
diff --git a/extension.json b/extension.json
index 774c4a5..05fddab 100644
--- a/extension.json
+++ b/extension.json
@@ -155,6 +155,9 @@
                ],
                "TitleMove": [
                        "NewsletterHooks::onTitleMove"
+               ],
+               "ContentModelCanBeUsedOn": [
+                       "NewsletterHooks::onContentModelCanBeUsedOn"
                ]
        },
        "namespaces": [

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I38c991dac78f54867023571da4ba00d6cc2d64f7
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: Pppery <maprea...@olum.org>
Gerrit-Reviewer: 01tonythomas <01tonytho...@gmail.com>
Gerrit-Reviewer: Pppery <maprea...@olum.org>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to