Added new setting - Enable Users after Anonymous Registration?

This commit is contained in:
Paul Driver 2011-07-25 14:04:40 -05:00
parent 182fc16021
commit 7b1e385dd3
5 changed files with 50 additions and 8 deletions

View file

@ -23,6 +23,7 @@ use WebGUI::User;
use WebGUI::Utility;
use WebGUI::Form::Captcha;
use WebGUI::Macro;
use Scope::Guard qw(guard);
use Encode ();
our @ISA = qw(WebGUI::Auth);
@ -269,12 +270,26 @@ sub createAccountSave {
$properties->{ identifier } = $self->hashPassword($password);
$properties->{ passwordLastUpdated } = time();
$properties->{ passwordTimeout } = $setting->get("webguiPasswordTimeout");
$properties->{ status } = 'Deactivated' if ($setting->get("webguiValidateEmail"));
my $afterCreateMessage = $self->SUPER::createAccountSave($username,$properties,$password,$profile);
my $sendEmail = $setting->get('webguiValidateEmail');
# We need to deactivate the user and log him out if there are additional
# things that need to be done before he should be logged in.
my $cleanupUser;
if ($sendEmail || !$setting->get('enableUsersAfterAnonymousRegistration')) {
$cleanupUser = guard {
$self->user->status('Deactivated');
$session->var->end($session->var->get('sessionId'));
$session->var->start(1, $session->getId);
my $u = WebGUI::User->new($session, 1);
$self->{user} = $u;
$self->logout;
};
}
# Send validation e-mail if required
if ($setting->get("webguiValidateEmail")) {
if ($sendEmail) {
my $key = $session->id->generate;
$self->saveParams($self->userId,"WebGUI",{emailValidationKey=>$key});
my $mail = WebGUI::Mail::Send->create($self->session, {
@ -290,12 +305,6 @@ WebGUI::Asset::Template->new($self->session,$self->getSetting('accountActivation
$mail->addText($text);
$mail->addFooter;
$mail->queue;
$self->user->status("Deactivated");
$session->var->end($session->var->get("sessionId"));
$session->var->start(1,$session->getId);
my $u = WebGUI::User->new($session,1);
$self->{user} = $u;
$self->logout;
return $self->displayLogin($i18n->get('check email for validation','AuthWebGUI'));
}
return $afterCreateMessage;