From 7e113641bec5d7c40c2045d51fefc175f1a5ff21 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Fri, 21 May 2010 17:01:43 +0200 Subject: [PATCH] Add templatable notification for users to confirm via mail. --- lib/WebGUI/AssetAspect/Subscriber.pm | 17 +++++++++++++---- sbin/install_newsletter.pl | 1 + .../root_import_personalnewsletter.wgpkg | Bin 2548 -> 2893 bytes 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/WebGUI/AssetAspect/Subscriber.pm b/lib/WebGUI/AssetAspect/Subscriber.pm index 803ac1a..9557a59 100644 --- a/lib/WebGUI/AssetAspect/Subscriber.pm +++ b/lib/WebGUI/AssetAspect/Subscriber.pm @@ -40,6 +40,13 @@ sub definition { label => 'Allow anonymous subscription', tab => 'subscription', }, + confirmationRequiredTemplateId => { + fieldType => 'template', + defaultValue => 'd1tQuv-OlPwgz6PnLcq-hA', + label => 'Confirmation required template', + namespace => 'Subscriber/ConfirmationRequired', + tab => 'subscription', + }, confirmationEmailSubject => { fieldType => 'text', defaultVale => 'Confirm your subscription mutation', @@ -61,7 +68,7 @@ sub definition { }, noMutationEmailTemplateId => { fieldType => 'template', - defaultValue => '', + defaultValue => 'Q8t7dUqMk05D2m7Jbgg4BQ', label => 'No mutation email template', namespace => 'Subscriber/NoMutationEmail', tab => 'subscription', @@ -359,10 +366,12 @@ sub www_processSubscription { if ( $action eq 'unsubscribe' && $self->canUnsubscribe ) { $self->unsubscribe; } + + return unless $self->get('alwaysConfirmSubscription'); } elsif ( $self->get('allowAnonymousSubscription') ) { my $email = $form->email( 'email' ); - return 'no email' unless $email; + return 'Error: no email address passed' unless $email; my $emailUser = WebGUI::User::SpecialState->newByEmail( $session, $email ); if ( $action eq 'unsubscribe' && defined $emailUser ) { @@ -379,10 +388,10 @@ sub www_processSubscription { } } else { - return 'anonymous subscription is not allowed.' + return $self->processStyle( 'Anonymous subscription is not allowed. Please log in to (un)subscribe' ); } - return; + return $self->processStyle( $self->processTemplate( {}, $self->get('confirmationRequiredTemplateId') ) ); } #---------------------------------------------------------------------------- diff --git a/sbin/install_newsletter.pl b/sbin/install_newsletter.pl index c6dbb54..fe8dfd6 100644 --- a/sbin/install_newsletter.pl +++ b/sbin/install_newsletter.pl @@ -60,6 +60,7 @@ sub installSubscriberAspectTable { subscriptionEnabled tinyint(1) not null default 0, alwaysConfirmSubscription tinyint(1) not null default 0, allowAnonymousSubscription tinyint(1) not null default 0, + confirmationRequiredTemplateId char(22) binary, confirmationEmailTemplateId char(22) binary, confirmationEmailSubject varchar(255), noMutationEmailTemplateId char(22) binary, diff --git a/sbin/packages/root_import_personalnewsletter.wgpkg b/sbin/packages/root_import_personalnewsletter.wgpkg index 815eccd2286a3f8901c4c1f7287eb37b0bb1235e..bdfe09be9e5422cebd3a5c04b2ef286a6016d910 100644 GIT binary patch literal 2893 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 KOu=seJ^%pCc=$*F