From fd3f1ae565be29be8c2dcd91b968afd1e2c18ade Mon Sep 17 00:00:00 2001 From: Frank Dillon Date: Sat, 20 Dec 2003 18:50:40 +0000 Subject: [PATCH] no message --- lib/WebGUI/Auth.pm | 38 +++++++++++++++++++++++-- lib/WebGUI/Auth/LDAP.pm | 58 ++++++++++++++------------------------- lib/WebGUI/Auth/WebGUI.pm | 30 ++++---------------- 3 files changed, 62 insertions(+), 64 deletions(-) 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; }