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