01tonythomas has uploaded a new change for review.

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

Change subject: On deleting the main page, remove the newsletter from DB too
......................................................................

On deleting the main page, remove the newsletter from DB too

Change-Id: Id38bc798a1e6cca411e8d75b334ce39b298d498d
---
M Newsletter.hooks.php
M extension.json
2 files changed, 37 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Newsletter 
refs/changes/90/320090/1

diff --git a/Newsletter.hooks.php b/Newsletter.hooks.php
index d765bf1..4536962 100755
--- a/Newsletter.hooks.php
+++ b/Newsletter.hooks.php
@@ -174,4 +174,38 @@
                $editPage->edit();
                return false;
        }
+
+       /**
+        * @param WikiPage $wikiPage
+        * @param User $user
+        * @param string $reason
+        * @param string $error
+        * @param Status $status
+        * @param $suppress
+        * @return bool
+        * @throws PermissionsError
+        */
+       public static function onArticleDelete( &$wikiPage, &$user, &$reason, 
&$error, Status &$status, $suppress) {
+               global $wgOut;
+               if ( !$wikiPage->getTitle()->inNamespace( NS_NEWSLETTER ) ) {
+                       return true;
+               }
+               $newsletter = Newsletter::newFromName( 
$wikiPage->getTitle()->getText() );
+               if ( $newsletter ) {
+                       if ( !$newsletter->canDelete( $user ) ) {
+                               throw new PermissionsError( 'newsletter-delete' 
);
+                       }
+                       $success = NewsletterStore::getDefaultInstance()
+                               ->deleteNewsletter( $newsletter, $reason );
+                       if ( $success ) {
+                               return $status->newGood();
+                       } else {
+                               // Show error message and allow resubmitting in 
case of failure
+                               return $status->newFatal(
+                                       $wgOut->msg( 
'newsletter-delete-failure' )->rawParams( $newsletter->getName() )
+                               );
+                       }
+               }
+               return true;
+       }
 }
diff --git a/extension.json b/extension.json
index 6876d65..2e1c8af 100644
--- a/extension.json
+++ b/extension.json
@@ -157,6 +157,9 @@
                ],
                "CustomEditor": [
                        "NewsletterHooks::onCustomEditor"
+               ],
+               "ArticleDelete": [
+                       "NewsletterHooks::onArticleDelete"
                ]
        },
        "namespaces": [

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id38bc798a1e6cca411e8d75b334ce39b298d498d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Newsletter
Gerrit-Branch: master
Gerrit-Owner: 01tonythomas <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to