From 150087f70325e8f119b63a59df8733bd23acf42b Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Thu, 19 Jan 2006 03:07:34 +0000 Subject: [PATCH] lots of operation and auth fixes. --- lib/WebGUI/Asset/Shortcut.pm | 6 +-- lib/WebGUI/Asset/Wobject/HttpProxy.pm | 4 +- lib/WebGUI/Asset/Wobject/SQLReport.pm | 2 +- lib/WebGUI/Asset/Wobject/Survey.pm | 2 +- lib/WebGUI/Asset/Wobject/WSClient.pm | 4 +- lib/WebGUI/AssetClipboard.pm | 2 +- lib/WebGUI/AssetTrash.pm | 2 +- lib/WebGUI/Auth.pm | 60 ++++++++++++------------ lib/WebGUI/Auth/WebGUI.pm | 2 +- lib/WebGUI/Commerce/Payment.pm | 2 +- lib/WebGUI/Commerce/Payment/ITransact.pm | 4 +- lib/WebGUI/Operation/Commerce.pm | 30 ++++++------ lib/WebGUI/Operation/Profile.pm | 6 +-- lib/WebGUI/Operation/Settings.pm | 4 +- lib/WebGUI/Operation/Statistics.pm | 2 +- lib/WebGUI/Operation/User.pm | 2 +- lib/WebGUI/ProfileField.pm | 2 +- lib/WebGUI/Session/Form.pm | 2 +- lib/WebGUI/Session/Var.pm | 1 + 19 files changed, 71 insertions(+), 68 deletions(-) diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index 53b446f23..d1826bf70 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -310,7 +310,7 @@ sub getFieldsList { my $output = ''.$i18n->get('Manage Profile Fields').'

'; my %fieldNames; tie %fieldNames, 'Tie::IxHash'; - foreach my $field (@{WebGUI::ProfileField->getFields}) { + foreach my $field (@{WebGUI::ProfileField->new($self->session,'dummy')->getFields}) { my $fieldId = $field->getId; next if $fieldId =~ /contentPositions/; $fieldNames{$fieldId} = $field->getLabel.' ['.$fieldId.']'; @@ -708,11 +708,11 @@ sub www_saveUserPrefs { $self->uncacheOverrides; my $i18n = WebGUI::International->new($self->session); my $u = WebGUI::User->new($self->session, $self->discernUserId); - foreach my $fieldId ($self->request->params) { + foreach my $fieldId ($self->request->param) { my $field = WebGUI::ProfileField->new($self->session,$fieldId); next unless $field; $data{$field->getId} = $field->formProcess; - if ($field->getId eq 'email' && WebGUI::Operation::Profile::isDuplicateEmail($data{$field->getId})) { + if ($field->getId eq 'email' && WebGUI::Operation::Profile::isDuplicateEmail($self->session,$data{$field->getId})) { return '
  • '.$i18n->get(1072).'
  • '; } if ($field->isRequired && !$data{$field->getId}) { diff --git a/lib/WebGUI/Asset/Wobject/HttpProxy.pm b/lib/WebGUI/Asset/Wobject/HttpProxy.pm index 73d60994d..d0ceebf77 100644 --- a/lib/WebGUI/Asset/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Asset/Wobject/HttpProxy.pm @@ -229,7 +229,7 @@ sub view { if($self->session->env->get("REQUEST_METHOD")=~/GET/i || $redirect != 0) { # request_method is also GET after a redirection. Just to make sure we're # not posting the same data over and over again. if($redirect == 0) { - foreach my $input_name ($self->session->request->params) { + foreach my $input_name ($self->session->request->param) { next if ($input_name !~ /^HttpProxy_/); # Skip non proxied form var's $input_name =~ s/^HttpProxy_//; $proxiedUrl=$self->session->url->append($proxiedUrl,"$input_name=".$self->session->form->process('HttpProxy_'.$input_name)); @@ -241,7 +241,7 @@ sub view { my $contentType = 'application/x-www-form-urlencoded'; # default Content Type header # Create a %formdata hash to pass key/value pairs to the POST request - foreach my $input_name ($self->session->request->params) { + foreach my $input_name ($self->session->request->param) { next if ($input_name !~ /^HttpProxy_/); # Skip non proxied form var's $input_name =~ s/^HttpProxy_//; diff --git a/lib/WebGUI/Asset/Wobject/SQLReport.pm b/lib/WebGUI/Asset/Wobject/SQLReport.pm index 8edecdbef..271a626f6 100644 --- a/lib/WebGUI/Asset/Wobject/SQLReport.pm +++ b/lib/WebGUI/Asset/Wobject/SQLReport.pm @@ -320,7 +320,7 @@ sub _processQuery { if (defined $dbh) { if ($query =~ /^select/i || $query =~ /^show/i || $query =~ /^describe/i) { my $url = $self->getUrl('func=view'); - foreach ($self->session->request->params) { + foreach ($self->session->request->param) { unless ($_ eq "pn" || $_ eq "func" || $_ =~ /identifier/i || $_ =~ /password/i) { $url = $self->session->url->append($url, $self->session->url->escape($_) .'='.$self->session->url->escape($self->session->form->process($_))); diff --git a/lib/WebGUI/Asset/Wobject/Survey.pm b/lib/WebGUI/Asset/Wobject/Survey.pm index a1bc26cec..8c7e87718 100644 --- a/lib/WebGUI/Asset/Wobject/Survey.pm +++ b/lib/WebGUI/Asset/Wobject/Survey.pm @@ -1168,7 +1168,7 @@ sub www_respond { return "" unless ($self->session->scratch->get($varname)); my $userId = ($self->get("anonymous")) ? substr(md5_hex($self->session->user->userId),0,8) : $self->session->user->userId; my $terminate = 0; - foreach my $key ($self->session->request->params) { + foreach my $key ($self->session->request->param) { if ($key =~ /^answerId_(.+)$/) { my $id = $1; my ($previousResponse) = $self->session->db->quickArray("select count(*) from Survey_questionResponse diff --git a/lib/WebGUI/Asset/Wobject/WSClient.pm b/lib/WebGUI/Asset/Wobject/WSClient.pm index ccdafd7e4..4faaa0d02 100644 --- a/lib/WebGUI/Asset/Wobject/WSClient.pm +++ b/lib/WebGUI/Asset/Wobject/WSClient.pm @@ -163,7 +163,7 @@ sub getEditForm { -hoverHelp => $i18n->get('5 description'), -value => $self->get('params'), ); - if ($self->session->config->('soapHttpHeaderOverride')) { + if ($self->session->config->get('soapHttpHeaderOverride')) { $tabform->getTab("properties")->text ( -name => 'httpHeader', -label => $i18n->get(16), @@ -245,7 +245,7 @@ sub view { # this page, with important params @seen{@exclude_params} = (); - foreach ($self->session->request->params) { + foreach ($self->session->request->param) { unless (exists $seen{$_}) { $query_string .= $self->session->url->escape($_) . '=' . $self->session->url->escape($self->session->form->process($_)) . ';'; diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm index 989a9f694..f6c48bae4 100644 --- a/lib/WebGUI/AssetClipboard.pm +++ b/lib/WebGUI/AssetClipboard.pm @@ -319,7 +319,7 @@ sub www_manageClipboard { } else { $ac->addSubmenuItem($self->getUrl('func=manageClipboard;systemClipboard=1'), $i18n->get(954)); $ac->addSubmenuItem($self->getUrl('func=emptyClipboard'), $i18n->get(950), - 'onclick="return window.confirm(\''.$i18n->(951,"WebGUI").'\')"',"Asset"); + 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); $limit = 1; } $self->session->style->setLink($self->session->config->get("extrasURL").'/assetManager/assetManager.css', {rel=>"stylesheet",type=>"text/css"}); diff --git a/lib/WebGUI/AssetTrash.pm b/lib/WebGUI/AssetTrash.pm index 57e76f2ab..68fce2b41 100644 --- a/lib/WebGUI/AssetTrash.pm +++ b/lib/WebGUI/AssetTrash.pm @@ -191,7 +191,7 @@ sub www_manageTrash { $ac->setHelp("trash manage"); if ($self->session->form->process("systemTrash") && $self->session->user->isInGroup(3)) { $header = $i18n->get(965); - $ac->addSubmenuItem($self->getUrl('func=manageTrash'), $i18n->(10,"WebGUI")); + $ac->addSubmenuItem($self->getUrl('func=manageTrash'), $i18n->get(10,"WebGUI")); } else { $ac->addSubmenuItem($self->getUrl('func=manageTrash;systemTrash=1'), $i18n->get(964)); $limit = 1; diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index 7b966c025..c4e6c936e 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -199,7 +199,7 @@ sub createAccount { $vars->{'create.form.header'} .= WebGUI::Form::hidden($self->session,{"name"=>"method","value"=>$method}); #User Defined Options - $vars->{'create.form.profile'} = WebGUI::Operation::Profile::getRequiredProfileFields(); + $vars->{'create.form.profile'} = WebGUI::Operation::Profile::getRequiredProfileFields($self->session); $vars->{'create.form.submit'} = WebGUI::Form::submit($self->session,{}); $vars->{'create.form.footer'} = WebGUI::Form::formFooter($self->session,); @@ -238,37 +238,39 @@ Hashref of profile values returned by the function WebGUI::Operation::Profile::v =cut sub createAccountSave { - my $self = shift; - my $username = $_[0]; - my $properties = $_[1]; - my $password = $_[2]; - my $profile = $_[3]; - + my $self = shift; + my $username = $_[0]; + my $properties = $_[1]; + my $password = $_[2]; + my $profile = $_[3]; + my $i18n = WebGUI::International->new($self->session); - - - my $u = WebGUI::User->new($self->session,"new"); - $self->user($u); - my $userId = $u->userId; - $u->username($username); - $u->authMethod($self->authMethod); - $u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma")); - WebGUI::Operation::Profile::saveProfileFields($u,$profile) if($profile); - $self->saveParams($userId,$self->authMethod,$properties); - - if ($self->getSetting("sendWelcomeMessage")){ - my $authInfo = "\n\n".$i18n->get(50).": ".$username; - $authInfo .= "\n".$i18n->get(51).": ".$password if($password); - $authInfo .= "\n\n"; - WebGUI::MessageLog::addEntry($self->userId,"",$i18n->get(870),$self->getSetting("welcomeMessage").$authInfo); - } - $self->session->user({user=>$u}); - $self->_logLogin($userId,"success"); + + + my $u = WebGUI::User->new($self->session,"new"); + $self->user($u); + my $userId = $u->userId; + $u->username($username); + $u->authMethod($self->authMethod); + $u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma")); + WebGUI::Operation::Profile::saveProfileFields($self->session,$u,$profile) if($profile); + $self->saveParams($userId,$self->authMethod,$properties); + + if ($self->getSetting("sendWelcomeMessage")){ + my $authInfo = "\n\n".$i18n->get(50).": ".$username; + $authInfo .= "\n".$i18n->get(51).": ".$password if($password); + $authInfo .= "\n\n"; + WebGUI::MessageLog::addEntry($self->userId,"",$i18n->get(870),$self->getSetting("welcomeMessage").$authInfo); + } + $self->session->user({user=>$u}); + $self->session->var->end($self->session->var->get("sessionId")); + $self->session->var->start($userId,$self->session->getId); + $self->_logLogin($userId,"success"); my $command = $self->session->setting->get("runOnRegistration"); WebGUI::Macro::process($self->session,\$command); - system($command) if ($self->session->setting->get("runOnRegistration") ne ""); - WebGUI::MessageLog::addInternationalizedEntry('',$self->session->setting->get("onNewUserAlertGroup"),'',536) if ($self->session->setting->get("alertOnNewUser")); - return ""; + system($command) if ($self->session->setting->get("runOnRegistration") ne ""); + WebGUI::MessageLog::addInternationalizedEntry('',$self->session->setting->get("onNewUserAlertGroup"),'',536) if ($self->session->setting->get("alertOnNewUser")); + return ""; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index e7dd49f0f..df918b661 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -210,7 +210,7 @@ sub createAccountSave { } } $error .= $self->error unless($self->_isValidPassword($password,$passConfirm)); - my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData(); + my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData($self->session); $error .= $temp; return $self->createAccount($error) unless ($error eq ""); diff --git a/lib/WebGUI/Commerce/Payment.pm b/lib/WebGUI/Commerce/Payment.pm index 3322dfb73..2596bcd57 100644 --- a/lib/WebGUI/Commerce/Payment.pm +++ b/lib/WebGUI/Commerce/Payment.pm @@ -200,7 +200,7 @@ The namespace of the plugin. sub init { my ($class, $session, $namespace, $properties); $class = shift; - $session = shift; + $session = shift; use WebGUI; WebGUI::dumpSession($session); $namespace = shift; $properties = $session->db->buildHashRef("select fieldName, fieldValue from commerceSettings where namespace=".$session->db->quote($namespace)." and type='Payment'"); diff --git a/lib/WebGUI/Commerce/Payment/ITransact.pm b/lib/WebGUI/Commerce/Payment/ITransact.pm index e1d4371cd..ef2026624 100644 --- a/lib/WebGUI/Commerce/Payment/ITransact.pm +++ b/lib/WebGUI/Commerce/Payment/ITransact.pm @@ -501,8 +501,8 @@ sub confirmTransaction { sub init { my ($class, $self); $class = shift; - - $self = $class->SUPER::init('ITransact'); + my $session = shift; use WebGUI; WebGUI::dumpSession($session); + $self = $class->SUPER::init($session,'ITransact'); return $self; } diff --git a/lib/WebGUI/Operation/Commerce.pm b/lib/WebGUI/Operation/Commerce.pm index 918565464..dba4934a9 100644 --- a/lib/WebGUI/Operation/Commerce.pm +++ b/lib/WebGUI/Operation/Commerce.pm @@ -39,8 +39,8 @@ sub _submenu { #------------------------------------------------------------------- sub _clearCheckoutScratch { my $session = shift; use WebGUI; WebGUI::dumpSession($session); - _clearShippingScratch(); - _clearPaymentScratch(); + _clearShippingScratch($session); + _clearPaymentScratch($session); } #------------------------------------------------------------------- @@ -107,9 +107,9 @@ sub www_cancelTransaction { #------------------------------------------------------------------- sub www_checkout { my $session = shift; use WebGUI; WebGUI::dumpSession($session); - return WebGUI::Operation::execute($session,'selectShippingMethod') unless (_shippingSelected); + return WebGUI::Operation::execute($session,'selectShippingMethod') unless (_shippingSelected($session)); - return WebGUI::Operation::execute($session,'selectPaymentGateway') unless (_paymentSelected); + return WebGUI::Operation::execute($session,'selectPaymentGateway') unless (_paymentSelected($session)); return WebGUI::Operation::execute($session,'checkoutConfirm'); } @@ -129,7 +129,7 @@ sub www_checkoutConfirm { } # If no payment gateway has been selected yet, have the user do so now. - return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected && _shippingSelected); + return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected($session) && _shippingSelected($session)); $var{errorLoop} = [ map {{message => $_}} @{$errors} ] if $errors; @@ -210,7 +210,7 @@ sub www_checkoutSubmit { } # Check if a valid payment gateway has bee selected. If not have the user do so. - return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected && _shippingSelected); + return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected($session) && _shippingSelected($session)); # Load shipping plugin. $shipping = WebGUI::Commerce::Shipping->load($session, $session->scratch->get('shippingMethod')); @@ -315,7 +315,7 @@ sub www_checkoutSubmit { $param{statusExplanation} = $i18n->get('status codes information'); $param{resultLoop} = \@resultLoop; - _clearCheckoutScratch; + _clearCheckoutScratch($session); # If everythings ok show the purchase history return WebGUI::Operation::execute($session,'viewPurchaseHistory') unless ($checkoutError); @@ -505,7 +505,7 @@ sub www_editCommerceSettings { $session->style->setScript($session->config->get("extrasURL").'/swapLayers.js',{type=>"text/javascript"}); - return _submenu($tabform->print, 'edit commerce settings title', 'commerce manage'); + return _submenu($session,$tabform->print, 'edit commerce settings title', 'commerce manage'); } #------------------------------------------------------------------- @@ -513,7 +513,7 @@ sub www_editCommerceSettingsSave { my $session = shift; use WebGUI; WebGUI::dumpSession($session); return $session->privilege->adminOnly() unless ($session->user->isInGroup(3)); - foreach ($session->request->params) { + foreach ($session->request->param) { # Store the plugin confiuration data in a special table for security and the general settings in the # normal settings table for easy access. if (/~([^~]*)~([^~]*)~([^~]*)/) { @@ -524,7 +524,7 @@ sub www_editCommerceSettingsSave { fieldValue => $session->form->process($_) }); } elsif ($_ ne 'op') { - WebGUI::Setting::set($_,$session->form->process($_)); + $session->setting->set($_,$session->form->process($_)); } } @@ -561,7 +561,7 @@ sub www_listPendingTransactions { $output .= ''; $output .= $p->getBarTraditional($session->form->process("pn")); - _submenu($output, 'list pending transactions', 'list pending transactions'); + _submenu($session,$output, 'list pending transactions', 'list pending transactions'); } #------------------------------------------------------------------- @@ -657,7 +657,7 @@ sub www_listTransactions { } $output .= ''; - return _submenu($output, 'list transactions') + return _submenu($session,$output, 'list transactions') } #------------------------------------------------------------------- @@ -665,7 +665,7 @@ sub www_selectPaymentGateway { my $session = shift; use WebGUI; WebGUI::dumpSession($session); my ($plugins, $f, $i18n, @pluginLoop, %var); - _clearPaymentScratch; + _clearPaymentScratch($session); $i18n = WebGUI::International->new($session, 'Commerce'); $plugins = WebGUI::Commerce::Payment->getEnabledPlugins($session); @@ -710,7 +710,7 @@ sub www_selectShippingMethod { my $session = shift; use WebGUI; WebGUI::dumpSession($session); my ($plugins, $f, $i18n, @pluginLoop, %var); - _clearShippingScratch; + _clearShippingScratch($session); $i18n = WebGUI::International->new($session, 'Commerce'); $plugins = WebGUI::Commerce::Shipping->getEnabledPlugins($session); @@ -768,7 +768,7 @@ sub www_updateCart { my $session = shift; use WebGUI; WebGUI::dumpSession($session); my $shoppingCart = WebGUI::Commerce::ShoppingCart->new($session); - foreach my $formElement ($session->request->params) { + foreach my $formElement ($session->request->param) { if ($formElement =~ m/^quantity~([^~]*)~([^~]*)$/) { $shoppingCart->setQuantity($2, $1, $session->form->process($formElement)); } diff --git a/lib/WebGUI/Operation/Profile.pm b/lib/WebGUI/Operation/Profile.pm index 7d869ca81..0f4923d25 100644 --- a/lib/WebGUI/Operation/Profile.pm +++ b/lib/WebGUI/Operation/Profile.pm @@ -29,7 +29,7 @@ use WebGUI::Operation::Shared; sub getRequiredProfileFields { my $session = shift; use WebGUI; WebGUI::dumpSession($session); my @array; - foreach my $field (@{WebGUI::ProfileField->getRequiredFields}) { + foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getRequiredFields}) { push(@array, { 'profile.formElement' => $field->formField, 'profile.formElement.label' => $field->getLabel @@ -75,7 +75,7 @@ sub validateProfileData { my $error = ""; my $warning = ""; my $i18n = WebGUI::International->new($session); - foreach my $field (@{WebGUI::ProfileField->getEditableFields}) { + foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getEditableFields}) { my $fieldValue = $field->formProcess; if (ref $fieldValue eq "ARRAY") { $data{$field->getId} = $$fieldValue[0]; @@ -84,7 +84,7 @@ sub validateProfileData { } if ($field->isRequired && !$data{$field->getId}) { $error .= '
  • '.$field->getLabel.' '.$i18n->get(451).'
  • '; - } elsif ($field->getId eq "email" && isDuplicateEmail($data{$field->getId})) { + } elsif ($field->getId eq "email" && isDuplicateEmail($session,$data{$field->getId})) { $warning .= '
  • '.$i18n->get(1072).'
  • '; } } diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 7c68b5b47..992a3d968 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -300,10 +300,10 @@ sub www_saveSettings { next; } unless ($key eq "op") { - WebGUI::Setting::set($key,$value); + $session->setting->set($key,$value); } } - return www_editSettings(); + return www_editSettings($session); } 1; diff --git a/lib/WebGUI/Operation/Statistics.pm b/lib/WebGUI/Operation/Statistics.pm index f3cb788de..9da8e6acb 100644 --- a/lib/WebGUI/Operation/Statistics.pm +++ b/lib/WebGUI/Operation/Statistics.pm @@ -65,7 +65,7 @@ sub www_viewStatistics { ($data) = $session->db->quickArray("select count(*) from groups"); $output .= ''.$i18n->get(89).':'.$data.''; $output .= ''; - return _submenu($output); + return _submenu($session,$output); } diff --git a/lib/WebGUI/Operation/User.pm b/lib/WebGUI/Operation/User.pm index b0bbc9bba..222c478b2 100644 --- a/lib/WebGUI/Operation/User.pm +++ b/lib/WebGUI/Operation/User.pm @@ -407,7 +407,7 @@ sub www_editUserSave { my $authInstance = WebGUI::Operation::Auth::getInstance($_,$u->userId); $authInstance->editUserFormSave; } - foreach my $field (@{WebGUI::ProfileField->getFields}) { + foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getFields}) { next if $field->getId =~ /contentPositions/; $u->profileField($field->getId,$field->formProcess); } diff --git a/lib/WebGUI/ProfileField.pm b/lib/WebGUI/ProfileField.pm index 3a51d1585..79292fdb8 100644 --- a/lib/WebGUI/ProfileField.pm +++ b/lib/WebGUI/ProfileField.pm @@ -173,7 +173,7 @@ Returns the value retrieved from a form post. sub formProcess { my $self = shift; - my $result = $self->session->form->process($self->getId,$self->get("fieldType"),WebGUI::Operation::Shared::secureEval($self->get("dataDefault"))); + my $result = $self->session->form->process($self->getId,$self->get("fieldType"),WebGUI::Operation::Shared::secureEval($self->session,$self->get("dataDefault"))); if (ref $result eq "ARRAY") { my @results = @$result; for (my $count=0;$count{_paramsHashRef}) { my $hash; - foreach ($self->session->request->params) { + foreach ($self->session->request->param) { $hash->{$_} = $self->process($_); } $self->{_paramsHashRef} = $hash; diff --git a/lib/WebGUI/Session/Var.pm b/lib/WebGUI/Session/Var.pm index 386a4b9ed..08056fefd 100644 --- a/lib/WebGUI/Session/Var.pm +++ b/lib/WebGUI/Session/Var.pm @@ -168,6 +168,7 @@ sub new { $self->{_var} = $session->db->quickHashRef("select * from userSession where sessionId=".$session->db->quote($sessionId)); if ($self->{_var}{expires} && $self->{_var}{expires} < $session->datetime->time()) { $self->end; + $self->start(1,$sessionId); } elsif ($self->{_var}{sessionId} ne "") { $self->{_var}{lastPageView} = $session->datetime->time(); $self->{_var}{lastIP} = $session->env->get("REMOTE_ADDR");