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;