Began refactoring Subscriber aspect to allow (un)subscription by email.
This commit is contained in:
parent
37120bafa8
commit
28e49e3dab
1 changed files with 26 additions and 6 deletions
|
|
@ -389,6 +389,7 @@ sub subscribe {
|
||||||
my $requireConfirm = shift // $self->get('alwaysConfirmSubscription');
|
my $requireConfirm = shift // $self->get('alwaysConfirmSubscription');
|
||||||
my $session = $self->session;
|
my $session = $self->session;
|
||||||
|
|
||||||
|
|
||||||
if ( $requireConfirm ) {
|
if ( $requireConfirm ) {
|
||||||
if ( $user->isInGroup( $self->getSubscriptionGroup->getId ) ) {
|
if ( $user->isInGroup( $self->getSubscriptionGroup->getId ) ) {
|
||||||
$self->sendNoMutationEmail( $user, 'subscribe' );
|
$self->sendNoMutationEmail( $user, 'subscribe' );
|
||||||
|
|
@ -472,6 +473,24 @@ sub www_confirmMutation {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub subscribeAnonymous {
|
||||||
|
my $self = shift;
|
||||||
|
my $email = shift; # TODO || return ?
|
||||||
|
my $session = $self->session;
|
||||||
|
|
||||||
|
my $emailUser = WebGUI::User::SpecialState->newByEmail( $session, $email );
|
||||||
|
|
||||||
|
if ( !defined $emailUser ) {
|
||||||
|
$emailUser = WebGUI::User::SpecialState->create( $session );
|
||||||
|
$emailUser->update( { email => $email } );
|
||||||
|
}
|
||||||
|
$emailUser->addSpecialState( 'Subscriber', $self->getId );
|
||||||
|
|
||||||
|
$self->subscribe( $emailUser, 1 );
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
sub www_processSubscription {
|
sub www_processSubscription {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
@ -501,13 +520,14 @@ sub www_processSubscription {
|
||||||
$self->unsubscribe( $emailUser, 1 );
|
$self->unsubscribe( $emailUser, 1 );
|
||||||
}
|
}
|
||||||
if ( $action eq 'subscribe' ) {
|
if ( $action eq 'subscribe' ) {
|
||||||
if ( !defined $emailUser ) {
|
$self->subscribeAnonymous( $email );
|
||||||
$emailUser = WebGUI::User::SpecialState->create( $session );
|
#if ( !defined $emailUser ) {
|
||||||
$emailUser->update( { email => $email } );
|
# $emailUser = WebGUI::User::SpecialState->create( $session );
|
||||||
}
|
# $emailUser->update( { email => $email } );
|
||||||
$emailUser->addSpecialState( 'Subscriber', $self->getId );
|
#}
|
||||||
|
#$emailUser->addSpecialState( 'Subscriber', $self->getId );
|
||||||
|
|
||||||
$self->subscribe( $emailUser, 1 );
|
#$self->subscribe( $emailUser, 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue