more session related bug fixes

This commit is contained in:
JT Smith 2006-01-13 21:14:23 +00:00
parent 30c3d8815d
commit 6779353b85
5 changed files with 34 additions and 29 deletions

View file

@ -4,13 +4,14 @@ use strict;
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub setCommerceSetting { sub setCommerceSetting {
my $session = shift;
my ($entry); my ($entry);
$entry = shift; $entry = shift;
$self->session->db->write("delete from commerceSettings where ". $session->db->write("delete from commerceSettings where ".
"namespace=".$self->session->db->quote($entry->{namespace})." and ". "namespace=".$session->db->quote($entry->{namespace})." and ".
"type=".$self->session->db->quote($entry->{type})." and fieldName=".$self->session->db->quote($entry->{fieldName})); "type=".$session->db->quote($entry->{type})." and fieldName=".$session->db->quote($entry->{fieldName}));
$self->session->db->write("insert into commerceSettings (namespace, type, fieldName, fieldValue) values ". $session->db->write("insert into commerceSettings (namespace, type, fieldName, fieldValue) values ".
"(".$self->session->db->quote($entry->{namespace}).",".$self->session->db->quote($entry->{type}).",".$self->session->db->quote($entry->{fieldName}).",".$self->session->db->quote($entry->{fieldValue}).")"); "(".$session->db->quote($entry->{namespace}).",".$session->db->quote($entry->{type}).",".$session->db->quote($entry->{fieldName}).",".$session->db->quote($entry->{fieldValue}).")");
} }
1; 1;

View file

@ -45,7 +45,7 @@ sub new {
$class = shift; $class = shift;
$variantId = shift; $variantId = shift;
$product = WebGUI::Product->getByVariantId($variantId); $product = WebGUI::Product->getByVariantId($session,$variantId);
my $variant = $product->getVariant($variantId); my $variant = $product->getVariant($variantId);
my %parameters = map {split(/\./, $_)} split(/,/, $variant->{composition}); my %parameters = map {split(/\./, $_)} split(/,/, $variant->{composition});
my $composition = join(', ',map {$product->getParameter($_)->{name} .': '. $product->getOption($parameters{$_})->{value}} keys (%parameters)); my $composition = join(', ',map {$product->getParameter($_)->{name} .': '. $product->getOption($parameters{$_})->{value}} keys (%parameters));

View file

@ -80,7 +80,7 @@ sub create {
my $session = shift; my $session = shift;
my $params = shift; my $params = shift;
$params->{databaseLinkId} = "new"; $params->{databaseLinkId} = "new";
my $Id = $session->db->setRow("databaseLink","databaseLinkId",$params); my $id = $session->db->setRow("databaseLink","databaseLinkId",$params);
return $class->new($session,$id); return $class->new($session,$id);
} }
@ -110,7 +110,7 @@ sub disconnect {
my ($self, $value); my ($self, $value);
$self = shift; $self = shift;
$value = shift; $value = shift;
if (defined $self>{_dbh}) { if (defined $self->{_dbh}) {
$self->{_dbh}->disconnect() unless ($self->getId eq "0"); $self->{_dbh}->disconnect() unless ($self->getId eq "0");
} }
undef $self; undef $self;
@ -138,7 +138,7 @@ sub db {
return $self->{_dbh}; return $self->{_dbh};
} elsif ($dsn =~ /\DBI\:\w+\:\w+/i) { } elsif ($dsn =~ /\DBI\:\w+\:\w+/i) {
eval{ eval{
$self->{_dbh} = WebGUI::SQL->connect($session,$dsn,$username,$identifier); $self->{_dbh} = WebGUI::SQL->connect($self->session,$dsn,$username,$identifier);
}; };
if ($@) { if ($@) {
$self->session->errorHandler->warn("DatabaseLink [".$self->getId."] ".$@); $self->session->errorHandler->warn("DatabaseLink [".$self->getId."] ".$@);
@ -194,7 +194,7 @@ A reference to the current session.
sub getList { sub getList {
my $session = shift; my $session = shift;
my $list = $session->db->buildHashRef("select databaseLinkId, title from databaseLink order by title"); my $list = $session->db->buildHashRef("select databaseLinkId, title from databaseLink order by title");
my $i18n = WebGUI::International->new($self->session); my $i18n = WebGUI::International->new($session);
$list->{'0'} = $i18n->get(1076); $list->{'0'} = $i18n->get(1076);
return $list; return $list;
} }
@ -220,18 +220,19 @@ sub new {
my ($class, $databaseLinkId, %databaseLink); my ($class, $databaseLinkId, %databaseLink);
tie %databaseLink, 'Tie::CPHash'; tie %databaseLink, 'Tie::CPHash';
$class = shift; $class = shift;
my $session = shift;
$databaseLinkId = shift; $databaseLinkId = shift;
unless ($databaseLinkId eq "") { unless ($databaseLinkId eq "") {
if ($databaseLinkId eq "0") { if ($databaseLinkId eq "0") {
%databaseLink = ( %databaseLink = (
databaseLinkId=>"0", databaseLinkId=>"0",
DSN=>$self->session->config->get("dsn"), DSN=>$session->config->get("dsn"),
username=>$self->session->config->get("dbuser"), username=>$session->config->get("dbuser"),
identifier=>$self->session->config->get("dbpass"), identifier=>$session->config->get("dbpass"),
title=>"WebGUI Database" title=>"WebGUI Database"
); );
} else { } else {
%databaseLink = $self->session->db->quickHash("select * from databaseLink where databaseLinkId=".$self->session->db->quote($databaseLinkId)); %databaseLink = $session->db->quickHash("select * from databaseLink where databaseLinkId=".$session->db->quote($databaseLinkId));
} }
} }
return undef unless $databaseLink{databaseLinkId}; return undef unless $databaseLink{databaseLinkId};

View file

@ -41,7 +41,7 @@ sub www_deleteProductParameterOption {
return $session->privilege->insufficient unless ($session->user->isInGroup(14)); return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByOptionId($optionId)->deleteOption($optionId); WebGUI::Product->getByOptionId($session,$optionId)->deleteOption($optionId);
return WebGUI::Operation::execute('manageProduct'); return WebGUI::Operation::execute('manageProduct');
} }
@ -53,7 +53,7 @@ sub www_deleteProductParameter {
return $session->privilege->insufficient unless ($session->user->isInGroup(14)); return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByParameterId($parameterId)->deleteParameter($parameterId); WebGUI::Product->getByParameterId($session,$parameterId)->deleteParameter($parameterId);
return WebGUI::Operation::execute('manageProduct'); return WebGUI::Operation::execute('manageProduct');
} }
@ -191,7 +191,7 @@ sub www_editProductParameter {
$productId = $session->form->process("productId"); $productId = $session->form->process("productId");
unless ($parameterId eq 'new') { unless ($parameterId eq 'new') {
$product = WebGUI::Product->getByParameterId($parameterId); $product = WebGUI::Product->getByParameterId($session,$parameterId);
$parameter = $product->getParameter($parameterId); $parameter = $product->getParameter($parameterId);
$productId = $product->get('productId'); $productId = $product->get('productId');
} }
@ -275,7 +275,7 @@ sub www_editProductParameterOption {
$optionId = $session->form->process("optionId"); $optionId = $session->form->process("optionId");
unless ($optionId eq 'new') { unless ($optionId eq 'new') {
$option = WebGUI::Product->getByOptionId($optionId)->getOption($optionId); $option = WebGUI::Product->getByOptionId($session,$optionId)->getOption($optionId);
} }
$f = WebGUI::HTMLForm->new($session); $f = WebGUI::HTMLForm->new($session);
@ -342,7 +342,7 @@ sub www_editProductParameterOptionSave {
return '<ul><li>'.join('</li><li>', @error).'</li></ul><br />'.WebGUI::Operation::execute('editProduct') if (@error); return '<ul><li>'.join('</li><li>', @error).'</li></ul><br />'.WebGUI::Operation::execute('editProduct') if (@error);
$product = WebGUI::Product->getByParameterId($session->form->process("parameterId")); $product = WebGUI::Product->getByParameterId($session,$session->form->process("parameterId"));
$optionId = $session->form->process("optionId"); $optionId = $session->form->process("optionId");
$optionId = $product->addOptionToParameter($session->form->process("parameterId")) if ($optionId eq 'new'); $optionId = $product->addOptionToParameter($session->form->process("parameterId")) if ($optionId eq 'new');
$product->setOption($optionId, { $product->setOption($optionId, {
@ -365,7 +365,7 @@ sub www_editProductVariant {
$i18n = WebGUI::International->new($session, "ProductManager"); $i18n = WebGUI::International->new($session, "ProductManager");
$variantId = $session->form->process("variantId"); $variantId = $session->form->process("variantId");
$variant = WebGUI::Product->getByVariantId($variantId)->getVariant($variantId); $variant = WebGUI::Product->getByVariantId($session,$variantId)->getVariant($variantId);
$f = WebGUI::HTMLForm->new($session); $f = WebGUI::HTMLForm->new($session);
$f->hidden( $f->hidden(
@ -416,7 +416,7 @@ my $variantId = $session->form->process("variantId");
return $session->privilege->insufficient unless ($session->user->isInGroup(14)); return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->getByVariantId($variantId)->setVariant($variantId, $session{form}); WebGUI::Product->getByVariantId($session,$variantId)->setVariant($variantId, $session{form});
return WebGUI::Operation::execute('listProductVariants'); return WebGUI::Operation::execute('listProductVariants');
} }

View file

@ -129,37 +129,40 @@ sub getByOptionId {
my ($class, $optionId, $productId); my ($class, $optionId, $productId);
$class = shift; $class = shift;
my $session = shift;
$optionId = shift; $optionId = shift;
($productId) = $self->session->db->quickArray("select productId from productParameters as t1, productParameterOptions as t2 ". ($productId) = $session->db->quickArray("select productId from productParameters as t1, productParameterOptions as t2 ".
"where t1.parameterId=t2.parameterId and t2.optionId=".$self->session->db->quote($optionId)); "where t1.parameterId=t2.parameterId and t2.optionId=".$session->db->quote($optionId));
return undef unless ($productId); return undef unless ($productId);
return WebGUI::Product->new($self->session,$productId); return WebGUI::Product->new($session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub getByParameterId { sub getByParameterId {
my ($class, $parameterId, $productId); my ($class, $parameterId, $productId);
$class = shift; $class = shift;
my $session = shift;
$parameterId = shift; $parameterId = shift;
($productId) = $self->session->db->quickArray("select productId from productParameters where parameterId=".$self->session->db->quote($parameterId)); ($productId) = $session->db->quickArray("select productId from productParameters where parameterId=".$session->db->quote($parameterId));
return WebGUI::Product->new($self->session,$productId); return WebGUI::Product->new($session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub getByVariantId { sub getByVariantId {
my ($class, $productId, $variantId); my ($class, $productId, $variantId);
$class = shift; $class = shift;
my $session = shift;
$variantId = shift; $variantId = shift;
($productId) = $self->session->db->quickArray("select productId from productVariants where variantId=".$self->session->db->quote($variantId)); ($productId) = $session->db->quickArray("select productId from productVariants where variantId=".$session->db->quote($variantId));
return WebGUI::Product->new($self->session,$productId); return WebGUI::Product->new($session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -210,7 +213,7 @@ sub new {
$properties = {productId => $productId}; $properties = {productId => $productId};
$session->db->write("insert into products (productId) values (".$session->db->quote($productId).")"); $session->db->write("insert into products (productId) values (".$session->db->quote($productId).")");
} else { } else {
$properties = $self->session->db->quickHashRef("select * from products where productId=".$session->db->quote($productId)); $properties = $session->db->quickHashRef("select * from products where productId=".$session->db->quote($productId));
# fetch parameters and options # fetch parameters and options
$sth = $session->db->read("select opt.*, param.* from productParameters as param left join productParameterOptions as opt ". $sth = $session->db->read("select opt.*, param.* from productParameters as param left join productParameterOptions as opt ".