diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm
index b64689809..2a413df1f 100644
--- a/lib/WebGUI/Auth.pm
+++ b/lib/WebGUI/Auth.pm
@@ -220,11 +220,45 @@ sub createAccount {
return WebGUI::Template::process(WebGUI::Template::get(1,$template), $vars);
}
+#-------------------------------------------------------------------
+sub createAccountSave {
+ my $self = shift;
+ my $username = $_[0];
+ my $properties = $_[1];
+ my $password = $_[2];
+ my $profile = $_[3];
+
+
+ my $u = WebGUI::User->new("new");
+ $self->user($u);
+ my $userId = $u->userId;
+ $u->username($username);
+ $u->authMethod($self->authMethod);
+ $u->karma($session{setting}{karmaPerLogin},"Login","Just for logging in.") if ($session{setting}{useKarma});
+ WebGUI::Operation::Profile::saveProfileFields($u,$profile) if($profile);
+ $self->saveParams($userId,$self->authMethod,$properties);
+
+ if ($self->getSetting("sendWelcomeMessage")){
+ my $authInfo = "\n\n".WebGUI::International::get(50).": ".$username;
+ $authInfo .= "\n".WebGUI::International::get(51).": ".$password if($password);
+ $authInfo .= "\n\n";
+ WebGUI::MessageLog::addEntry($self->userId,"",WebGUI::International::get(870),getSetting("welcomeMessage").$authInfo);
+ }
+
+ WebGUI::Session::convertVisitorToUser($session{var}{sessionId},$userId);
+ $self->_logLogin($userId,"success");
+ system(WebGUI::Macro::process($session{setting}{runOnRegistration})) if ($session{setting}{runOnRegistration} ne "");
+ WebGUI::MessageLog::addInternationalizedEntry('',$session{setting}{onNewUserAlertGroup},'',536) if ($session{setting}{alertOnNewUser});
+ return "";
+}
+
#-------------------------------------------------------------------
sub deactivateAccount {
my $self = shift;
my $method = $_[0];
my ($output);
+ return WebGUI::Privilege::vitalComponent() if($self->userId < 26);
+ return WebGUI::Privilege::adminOnly() if(!$session{setting}{selfDeactivation});
$output = '
'.WebGUI::International::get(42).'
';
$output .= WebGUI::International::get(60).'';
$output .= '
'.WebGUI::International::get(44).'';
@@ -235,8 +269,8 @@ sub deactivateAccount {
#-------------------------------------------------------------------
sub deactivateAccountConfirm {
my $self = shift;
- my ($u);
- $u = WebGUI::User->new($session{user}{userId});
+ return WebGUI::Privilege::vitalComponent() if ($self->userId < 26);
+ my $u = $self->user; #WebGUI::User->new($session{user}{userId});
$u->status("Selfdestructed");
WebGUI::Session::end($session{var}{sessionId});
WebGUI::Session::start(1);
diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm
index 584185402..46eba6c52 100644
--- a/lib/WebGUI/Auth/LDAP.pm
+++ b/lib/WebGUI/Auth/LDAP.pm
@@ -62,7 +62,7 @@ sub _isValidLDAPUser {
}
$ldap->unbind;
$ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'Auth/LDAP');
- $auth = $ldap->bind(dn=>$connectDN, password=>$session{form}{'authLDAP.password'});
+ $auth = $ldap->bind(dn=>$connectDN, password=>$session{form}{'authLDAP.identifier'});
if ($auth->code == 48 || $auth->code == 49) {
$error .= '
'.WebGUI::International::get(68);
WebGUI::ErrorHandler::warn("Invalid LDAP information for registration of LDAP ID: ".$session{form}{'authLDAP.ldapId'});
@@ -190,26 +190,16 @@ sub createAccount {
#-------------------------------------------------------------------
sub createAccountSave {
my $self = shift;
+ my $username = $session{form}{'authLDAP.ldapId'};
+ my $password = $session{form}{'authLDAP.identifier'};
+ my $error = "";
+
+ #Validate user in LDAP
if(!$self->_isValidLDAPUser()){
return $self->createAccount("".WebGUI::International::get(70)."
".$self->error);
}
- my $username = $session{form}{'authWebGUI.ldapId'};
- my $password = $session{form}{'authWebGUI.identifier'};
- my $passConfirm = $session{form}{'authWebGUI.identifierConfirm'};
-
- my $error = $self->error if(!$self->validUsernameAndPassword($username,$password,$password));
- my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData();
- $error .= $temp;
-
- return $self->createAccount("".WebGUI::International::get(70)."
".$error) unless ($error eq "");
-
- #If Email address is not unique, a warning is displayed
- if($warning ne "" && !$session{form}{confirm}){
- $session{form}{confirm} = 1;
- return $self->createAccount(''.WebGUI::International::get(1078));
- }
-
+ #Get connectDN from settings
my $uri = URI->new($session{setting}{ldapURL});
my $ldap = Net::LDAP->new($uri->host, (port=>$uri->port));
$ldap->bind;
@@ -224,43 +214,37 @@ sub createAccountSave {
}
$ldap->unbind;
- my $u = WebGUI::User->new("new");
- $self->user($u);
- my $userId = $u->userId;
- $u->username($username);
- $u->authMethod($self->authMethod);
- $u->karma($session{setting}{karmaPerLogin},"Login","Just for logging in.") if ($session{setting}{useKarma});
- WebGUI::Operation::Profile::saveProfileFields($u,$profile);
+
+ #Check that username is valid and not a duplicate in the system.
+ $error .= $self->error if($self->_isDuplicateUsername($username));
+ $error .= $self->error if(!$self->_isValidUsername($username));
+ #Validate profile data.
+ my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData();
+ $error .= $temp;
+ return $self->createAccount("".WebGUI::International::get(70)."
".$error) unless ($error eq "");
+ #If Email address is not unique, a warning is displayed
+ if($warning ne "" && !$session{form}{confirm}){
+ $session{form}{confirm} = 1;
+ return $self->createAccount(''.WebGUI::International::get(1078));
+ }
my $properties;
$properties->{connectDN} = $connectDN;
$properties->{ldapUrl} = $session{setting}{ldapURL};
- $self->saveParams($userId,$self->authMethod,$properties);
-
- my $authInfo = "\n\n".WebGUI::International::get(50).": ".$username."\n".WebGUI::International::get(51).": ".$password."\n\n";
- WebGUI::MessageLog::addEntry($self->userId,"",WebGUI::International::get(870),$session{setting}{ldapWelcomeMessage}.$authInfo) if ($session{setting}{ldapSendWelcomeMessage});
-
- WebGUI::Session::convertVisitorToUser($session{var}{sessionId},$userId);
- $self->_logLogin($userId,"success");
- system(WebGUI::Macro::process($session{setting}{runOnRegistration})) if ($session{setting}{runOnRegistration} ne "");
- WebGUI::MessageLog::addInternationalizedEntry('',$session{setting}{onNewUserAlertGroup},'',536) if ($session{setting}{alertOnNewUser});
- return "";
+ return $self->SUPER::createAccountSave($username,$properties,$password,$profile);
}
#-------------------------------------------------------------------
sub deactivateAccount {
my $self = shift;
return $self->displayLogin if($self->userId == 1);
- return WebGUI::Privilege::vitalComponent() if($self->userId < 26);
- return WebGUI::Privilege::adminOnly() if(!$session{setting}{selfDeactivation});
return $self->SUPER::deactivateAccount("deactivateAccountConfirm");
}
#-------------------------------------------------------------------
sub deactivateAccountConfirm {
my $self = shift;
- return WebGUI::Privilege::vitalComponent() if ($self->userId < 26);
return $self->displayLogin unless ($session{setting}{selfDeactivation});
return $self->SUPER::deactivateAccountConfirm;
}
diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm
index edd68e01e..7e689a294 100644
--- a/lib/WebGUI/Auth/WebGUI.pm
+++ b/lib/WebGUI/Auth/WebGUI.pm
@@ -123,44 +123,24 @@ sub createAccountSave {
return $self->createAccount(''.WebGUI::International::get(1078));
}
- my $lastUpdated = time();
+ my $properties;
+ $properties->{identifier} = Digest::MD5::md5_base64($password);
+ $properties->{passwordLastUpdated} = time();
+ $properties->{passwordTimeout} = $session{setting}{webguiPasswordTimeout};
- my $u = WebGUI::User->new("new");
- $self->user($u);
- my $userId = $u->userId;
- $u->username($username);
- $u->authMethod($self->authMethod);
- $u->karma($session{setting}{karmaPerLogin},"Login","Just for logging in.") if ($session{setting}{useKarma});
- WebGUI::Operation::Profile::saveProfileFields($u,$profile);
-
- my %properties;
- $properties{identifier} = Digest::MD5::md5_base64($password);
- $properties{passwordLastUpdated} = $lastUpdated;
- $properties{passwordTimeout} = $session{setting}{webguiPasswordTimeout};
- $self->saveParams($userId,$self->authMethod,\%properties);
- my $authInfo = "\n\n".WebGUI::International::get(50).": ".$username."\n".WebGUI::International::get(51).": ".$password."\n\n";
- WebGUI::MessageLog::addEntry($self->userId,"",WebGUI::International::get(870),$session{setting}{webguiWelcomeMessage}.$authInfo) if ($session{setting}{webguiSendWelcomeMessage});
-
- WebGUI::Session::convertVisitorToUser($session{var}{sessionId},$userId);
- $self->_logLogin($userId,"success");
- system(WebGUI::Macro::process($session{setting}{runOnRegistration})) if ($session{setting}{runOnRegistration} ne "");
- WebGUI::MessageLog::addInternationalizedEntry('',$session{setting}{onNewUserAlertGroup},'',536) if ($session{setting}{alertOnNewUser});
- return "";
+ return $self->SUPER::createAccountSave($username,$properties,$password,$profile);
}
#-------------------------------------------------------------------
sub deactivateAccount {
my $self = shift;
return $self->displayLogin if($self->userId == 1);
- return WebGUI::Privilege::vitalComponent() if($self->userId < 26);
- return WebGUI::Privilege::adminOnly() if(!$session{setting}{selfDeactivation});
return $self->SUPER::deactivateAccount("deactivateAccountConfirm");
}
#-------------------------------------------------------------------
sub deactivateAccountConfirm {
my $self = shift;
- return WebGUI::Privilege::vitalComponent() if ($self->userId < 26);
return $self->displayLogin unless ($session{setting}{selfDeactivation});
return $self->SUPER::deactivateAccountConfirm;
}