use warnings;
use strict;
=head1 NAME
Jifty::Plugin::Authentication::Password::Action::ConfirmEmail - Confirm a user's email address
=head1 DESCRIPTION
This is the link in a user's email to confirm that their email
email is really theirs. It is not really meant to be rendered on any
web page, but is used by the confirmation notification.
=cut
package Jifty::Plugin::Authentication::Password::Action::ConfirmEmail;
use base qw/Jifty::Action/;
=head2 arguments
A null sub, because the superclass wants to make sure we fill in arguments
=cut
sub arguments { }
=head2 take_action
Set their confirmed status.
=cut
sub take_action {
my $self = shift;
my $LoginUser = Jifty->app_class('Model', 'User');
my $CurrentUser = Jifty->app_class('CurrentUser');
my $u = $LoginUser->new( current_user => $CurrentUser->superuser );
$u->load_by_cols(id => Jifty->web->current_user->user_object->id );
if ( $u->email_confirmed ) {
$self->result->error( email => _("You have already confirmed your account.") );
$self->result->success(1); # but the action is still a success
return 1;
}
my ($val,$msg) = $u->set_email_confirmed('1') ;
unless ($val) {
$self->result->error($msg);
return undef;
}
# Set up our login message
$self->result->message( _("Welcome to %1, %2." , Jifty->config->framework('ApplicationName') , $u->name) ." "
. _(". Your email address has now been confirmed.") );
# Actually do the login thing.
Jifty->web->current_user( $CurrentUser->new( id => $u->id ) );
return 1;
}
1;