summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Fowler <spider@viovio.com>2009-04-15 02:24:49 +0000
committerChristian Fowler <spider@viovio.com>2009-04-15 02:24:49 +0000
commitb48e0d1dde008761b1eee3341afe19a4195d6fad (patch)
tree80a193f2d5c4d94a1c9eabebbff1a9b0871479de
parent8b7e7ec8767a8e6bd4b1a33c64bf44d9ebb23c6d (diff)
downloadnewsletters-b48e0d1dde008761b1eee3341afe19a4195d6fad.tar.gz
newsletters-b48e0d1dde008761b1eee3341afe19a4195d6fad.tar.bz2
newsletters-b48e0d1dde008761b1eee3341afe19a4195d6fad.zip
add users_expunge service method to clear out anything in the mail_queue
-rw-r--r--bit_setup_inc.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/bit_setup_inc.php b/bit_setup_inc.php
index d052cb6..a0fc3b0 100644
--- a/bit_setup_inc.php
+++ b/bit_setup_inc.php
@@ -1,6 +1,8 @@
<?php
global $gBitSystem;
+define( 'LIBERTY_SERVICE_NEWSLETTERS', 'newsletters' );
+
$registerHash = array(
'package_name' => 'newsletters',
'package_path' => dirname( __FILE__ ).'/',
@@ -19,5 +21,18 @@ if( $gBitSystem->isPackageActive( NEWSLETTERS_PKG_NAME ) ) {
require_once( NEWSLETTERS_PKG_PATH.'BitNewsletterMailer.php' );
BitNewsletterMailer::storeClickthrough( $_GET['ct'] );
}
+
+ $gLibertySystem->registerService( LIBERTY_SERVICE_NEWSLETTERS, TAGS_PKG_NAME, array(
+ 'users_expunge_function' => 'newsletters_user_expunge',
+ ) );
+
+ // make sure all mail_queue messages from a deleted user are nuked
+ function newsletters_user_expunge( &$pObject ) {
+ if( is_a( $pObject, 'BitUser' ) && !empty( $pObject->mUserId ) ) {
+ $pObject->mDb->StartTrans();
+ $pObject->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."mail_queue` WHERE user_id=?", array( $pObject->mUserId ) );
+ $pObject->mDb->CompleteTrans();
+ }
+ }
}
?>