Isolate register info in ->{registerInfo} (#26)
This commit is contained in:
parent
be04271809
commit
2fe20b1248
@ -102,27 +102,29 @@ sub extractRegisterInfo {
|
|||||||
$self->getApacheSession( $self->{register_token} );
|
$self->getApacheSession( $self->{register_token} );
|
||||||
|
|
||||||
if ( $registerSession->data ) {
|
if ( $registerSession->data ) {
|
||||||
$self->{mail} = $registerSession->data->{mail};
|
$self->{registerInfo}->{mail} = $registerSession->data->{mail};
|
||||||
$self->{firstname} = $registerSession->data->{firstname};
|
$self->{registerInfo}->{firstname} =
|
||||||
$self->{lastname} = $registerSession->data->{lastname};
|
$registerSession->data->{firstname};
|
||||||
$self->lmLog( "User associated to token: " . $self->{mail},
|
$self->{registerInfo}->{lastname} =
|
||||||
|
$registerSession->data->{lastname};
|
||||||
|
$self->lmLog( "User associated to token: " . $self->{registerInfo}->{mail},
|
||||||
'debug' );
|
'debug' );
|
||||||
}
|
}
|
||||||
|
|
||||||
return PE_BADMAILTOKEN unless ( $self->{mail} );
|
return PE_BADMAILTOKEN unless ( $self->{registerInfo}->{mail} );
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
# Use submitted value
|
# Use submitted value
|
||||||
$self->{mail} = $self->param('mail');
|
$self->{registerInfo}->{mail} = $self->param('mail');
|
||||||
$self->{firstname} = $self->param('firstname');
|
$self->{registerInfo}->{firstname} = $self->param('firstname');
|
||||||
$self->{lastname} = $self->param('lastname');
|
$self->{registerInfo}->{lastname} = $self->param('lastname');
|
||||||
|
|
||||||
# Captcha for register form
|
# Captcha for register form
|
||||||
# Only if register session does not already exist
|
# Only if register session does not already exist
|
||||||
if ( $self->{captcha_register_enabled}
|
if ( $self->{captcha_register_enabled}
|
||||||
&& $self->{mail}
|
&& $self->{registerInfo}->{mail}
|
||||||
&& !$self->getRegisterSession( $self->{mail} ) )
|
&& !$self->getRegisterSession( $self->{registerInfo}->{mail} ) )
|
||||||
{
|
{
|
||||||
$self->{captcha_user_code} = $self->param('captcha_user_code');
|
$self->{captcha_user_code} = $self->param('captcha_user_code');
|
||||||
$self->{captcha_check_code} = $self->param('captcha_code');
|
$self->{captcha_check_code} = $self->param('captcha_code');
|
||||||
@ -169,7 +171,8 @@ sub extractRegisterInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Check mail
|
# Check mail
|
||||||
return PE_MALFORMEDUSER unless ( $self->{mail} =~ /$self->{userControl}/o );
|
return PE_MALFORMEDUSER
|
||||||
|
unless ( $self->{registerInfo}->{mail} =~ /$self->{userControl}/o );
|
||||||
|
|
||||||
PE_OK;
|
PE_OK;
|
||||||
}
|
}
|
||||||
@ -181,6 +184,8 @@ sub extractRegisterInfo {
|
|||||||
sub getRegisterUser {
|
sub getRegisterUser {
|
||||||
my ($self) = splice @_;
|
my ($self) = splice @_;
|
||||||
|
|
||||||
|
$self->{mail} = $self->{registerInfo}->{mail};
|
||||||
|
|
||||||
if ( $self->getUser() == PE_OK ) {
|
if ( $self->getUser() == PE_OK ) {
|
||||||
|
|
||||||
# User already exists
|
# User already exists
|
||||||
@ -203,7 +208,7 @@ sub storeRegisterSession {
|
|||||||
# Skip this step if confirmation was already sent
|
# Skip this step if confirmation was already sent
|
||||||
return PE_OK
|
return PE_OK
|
||||||
if ( $self->{register_token}
|
if ( $self->{register_token}
|
||||||
or $self->getRegisterSession( $self->{mail} ) );
|
or $self->getRegisterSession( $self->{registerInfo}->{mail} ) );
|
||||||
|
|
||||||
# Create a new session
|
# Create a new session
|
||||||
my $registerSession = $self->getApacheSession();
|
my $registerSession = $self->getApacheSession();
|
||||||
@ -219,16 +224,17 @@ sub storeRegisterSession {
|
|||||||
|
|
||||||
# Store expiration timestamp for further use
|
# Store expiration timestamp for further use
|
||||||
$infos->{registerSessionTimeoutTimestamp} = $time + $registerTimeout;
|
$infos->{registerSessionTimeoutTimestamp} = $time + $registerTimeout;
|
||||||
$self->{registerSessionTimeoutTimestamp} = $time + $registerTimeout;
|
$self->{registerInfo}->{registerSessionTimeoutTimestamp} =
|
||||||
|
$time + $registerTimeout;
|
||||||
|
|
||||||
# Store start timestamp for further use
|
# Store start timestamp for further use
|
||||||
$infos->{registerSessionStartTimestamp} = $time;
|
$infos->{registerSessionStartTimestamp} = $time;
|
||||||
$self->{registerSessionStartTimestamp} = $time;
|
$self->{registerInfo}->{registerSessionStartTimestamp} = $time;
|
||||||
|
|
||||||
# Store infos
|
# Store infos
|
||||||
$infos->{mail} = $self->{mail};
|
$infos->{mail} = $self->{registerInfo}->{mail};
|
||||||
$infos->{firstname} = $self->{firstname};
|
$infos->{firstname} = $self->{registerInfo}->{firstname};
|
||||||
$infos->{lastname} = $self->{lastname};
|
$infos->{lastname} = $self->{registerInfo}->{lastname};
|
||||||
$infos->{ipAddr} = $self->ipAddr;
|
$infos->{ipAddr} = $self->ipAddr;
|
||||||
|
|
||||||
# Store type
|
# Store type
|
||||||
@ -250,7 +256,8 @@ sub sendConfirmationMail {
|
|||||||
return PE_OK if $self->{register_token};
|
return PE_OK if $self->{register_token};
|
||||||
|
|
||||||
# Check if confirmation mail has already been sent
|
# Check if confirmation mail has already been sent
|
||||||
my $register_session = $self->getRegisterSession( $self->{mail} );
|
my $register_session =
|
||||||
|
$self->getRegisterSession( $self->{registerInfo}->{mail} );
|
||||||
$self->{mail_already_sent} = ( $register_session and !$self->{id} ) ? 1 : 0;
|
$self->{mail_already_sent} = ( $register_session and !$self->{id} ) ? 1 : 0;
|
||||||
|
|
||||||
# Read session to get creation and expiration dates
|
# Read session to get creation and expiration dates
|
||||||
@ -259,13 +266,13 @@ sub sendConfirmationMail {
|
|||||||
$self->lmLog( "Register session found: $register_session", 'debug' );
|
$self->lmLog( "Register session found: $register_session", 'debug' );
|
||||||
|
|
||||||
my $registerSession = $self->getApacheSession( $register_session, 1 );
|
my $registerSession = $self->getApacheSession( $register_session, 1 );
|
||||||
$self->{registerSessionTimeoutTimestamp} =
|
$self->{registerInfo}->{registerSessionTimeoutTimestamp} =
|
||||||
$registerSession->data->{registerSessionTimeoutTimestamp};
|
$registerSession->data->{registerSessionTimeoutTimestamp};
|
||||||
$self->{registerSessionStartTimestamp} =
|
$self->{registerInfo}->{registerSessionStartTimestamp} =
|
||||||
$registerSession->data->{registerSessionStartTimestamp};
|
$registerSession->data->{registerSessionStartTimestamp};
|
||||||
|
|
||||||
# Mail session expiration date
|
# Mail session expiration date
|
||||||
my $expTimestamp = $self->{registerSessionTimeoutTimestamp};
|
my $expTimestamp = $self->{registerInfo}->{registerSessionTimeoutTimestamp};
|
||||||
|
|
||||||
$self->lmLog( "Register expiration timestamp: $expTimestamp", 'debug' );
|
$self->lmLog( "Register expiration timestamp: $expTimestamp", 'debug' );
|
||||||
|
|
||||||
@ -273,7 +280,7 @@ sub sendConfirmationMail {
|
|||||||
$self->{expMailTime} = strftime( "%H:%M", localtime $expTimestamp );
|
$self->{expMailTime} = strftime( "%H:%M", localtime $expTimestamp );
|
||||||
|
|
||||||
# Mail session start date
|
# Mail session start date
|
||||||
my $startTimestamp = $self->{registerSessionStartTimestamp};
|
my $startTimestamp = $self->{registerInfo}->{registerSessionStartTimestamp};
|
||||||
|
|
||||||
$self->lmLog( "Register start timestamp: $startTimestamp", 'debug' );
|
$self->lmLog( "Register start timestamp: $startTimestamp", 'debug' );
|
||||||
|
|
||||||
@ -311,17 +318,18 @@ sub sendConfirmationMail {
|
|||||||
$body =~ s/\$expMailDate/$self->{expMailDate}/g;
|
$body =~ s/\$expMailDate/$self->{expMailDate}/g;
|
||||||
$body =~ s/\$expMailTime/$self->{expMailTime}/g;
|
$body =~ s/\$expMailTime/$self->{expMailTime}/g;
|
||||||
$body =~ s/\$url/$url/g;
|
$body =~ s/\$url/$url/g;
|
||||||
$body =~ s/\$(\w+)/decode("utf8",$registerSession->data->{$1})/ge;
|
$body =~ s/\$(\w+)/decode("utf8",$self->{registerInfo}->{$1})/ge;
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
return PE_MAILERROR
|
return PE_MAILERROR
|
||||||
unless $self->send_mail( $self->{mail}, $subject, $body, $html );
|
unless $self->send_mail( $self->{registerInfo}->{mail}, $subject, $body,
|
||||||
|
$html );
|
||||||
|
|
||||||
PE_MAILCONFIRMOK;
|
PE_MAILCONFIRMOK;
|
||||||
}
|
}
|
||||||
|
|
||||||
## @method int registerUser
|
## @method int registerUser
|
||||||
# Change the password or generate a new password
|
# Get register session and create the account
|
||||||
# @return Lemonldap::NG::Portal constant
|
# @return Lemonldap::NG::Portal constant
|
||||||
sub registerUser {
|
sub registerUser {
|
||||||
my ($self) = splice @_;
|
my ($self) = splice @_;
|
||||||
@ -331,14 +339,14 @@ sub registerUser {
|
|||||||
|
|
||||||
$self->lmLog( "Generated password: " . $password, 'debug' );
|
$self->lmLog( "Generated password: " . $password, 'debug' );
|
||||||
|
|
||||||
$self->{newpassword} = $password;
|
$self->{registerInfo}->{password} = $password;
|
||||||
$self->{forceReset} = 1;
|
$self->{forceReset} = 1;
|
||||||
|
|
||||||
my $result;
|
my $result;
|
||||||
|
|
||||||
# TODO call UserDB createUser
|
# TODO call UserDB createUser
|
||||||
|
|
||||||
$self->lmLog( "Create new user $self->{mail}", 'debug' );
|
$self->lmLog( "Create new user $self->{registerInfo}->{mail}", 'debug' );
|
||||||
|
|
||||||
# Register token can be used only one time, delete the session if all is ok
|
# Register token can be used only one time, delete the session if all is ok
|
||||||
if ( $result == PE_OK ) {
|
if ( $result == PE_OK ) {
|
||||||
@ -389,12 +397,12 @@ sub sendRegisterMail {
|
|||||||
$body = $template->output();
|
$body = $template->output();
|
||||||
|
|
||||||
# Replace variables in body
|
# Replace variables in body
|
||||||
my $password = $self->{newpassword};
|
$body =~ s/\$(\w+)/decode("utf8",$self->{registerInfo}->{$1})/ge;
|
||||||
$body =~ s/\$password/$password/g;
|
|
||||||
|
|
||||||
# Send mail
|
# Send mail
|
||||||
return PE_MAILERROR
|
return PE_MAILERROR
|
||||||
unless $self->send_mail( $self->{mail}, $subject, $body, $html );
|
unless $self->send_mail( $self->{registerInfo}->{mail}, $subject, $body,
|
||||||
|
$html );
|
||||||
|
|
||||||
PE_MAILOK;
|
PE_MAILOK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user