From dd2e5a068723174a9d077c0e4eacf0c5965aef92 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 9 Mar 2011 14:05:58 +1300 Subject: [PATCH] FEATURE: make SubscriptionPage notification email UnsubscribeLink using AutoLoginHash ENHANCEMENT: if case no Member found, we still return an generic UnsubscibeLink for NewletterEmail (manually merged from r114346, not merged automatically during git migration) --- code/email/NewsletterEmail.php | 2 ++ code/pages/SubscriptionPage.php | 13 ++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/code/email/NewsletterEmail.php b/code/email/NewsletterEmail.php index cf04ae7a..f71dcf59 100644 --- a/code/email/NewsletterEmail.php +++ b/code/email/NewsletterEmail.php @@ -54,6 +54,8 @@ function UnsubscribeLink(){ } $nlTypeID = $this->nlType->ID; return Director::absoluteBaseURL() . "unsubscribe/index/".$member->AutoLoginHash."/$nlTypeID"; + }else{ + return Director::absoluteBaseURL() . "unsubscribe/index/"; } } diff --git a/code/pages/SubscriptionPage.php b/code/pages/SubscriptionPage.php index 4190a88a..a33ffa83 100644 --- a/code/pages/SubscriptionPage.php +++ b/code/pages/SubscriptionPage.php @@ -253,8 +253,15 @@ function doSubscribe($data, $form, $request){ if(!$member) { $member = new Member(); - $form->saveInto($member); - $member->write(); + } + $form->saveInto($member); + $member->write(); + + if($member->AutoLoginHash){ + $member->AutoLoginExpired = date('Y-m-d', time() + (86400 * 2)); + $member->write(); + }else{ + $member->generateAutologinHash(); } $newsletters = array(); @@ -307,7 +314,7 @@ function doSubscribe($data, $form, $request){ 'FirstName' => $member->FirstName, 'MemberInfoSection' => $emailableFields, 'Newsletters' => new DataObjectSet( $newsletters ), - 'UnsubscribeLink' => Director::baseURL() . 'unsubscribe/index/' . $member->Email + 'UnsubscribeLink' => Director::baseURL() . 'unsubscribe/index/' . $member->AutoLoginHash ); if($this->SendNotification){